一 什么是JavaScript
1.JavaScript又叫ECMAScript(简称JS)是一种轻量级的编程语言(一种页面脚本语言),针对与页面,HTML是整体结构框架,CSS则是页面渲染的样式,而JavaScript则是对页面行为的命令。
2.JavaScript的整体结构可分为三大结构:
- ECMAScript: 作为JavaScrip的核心语言标准,规范了JavaScript的语法,数据类型,关键字,标准字符集(Unicode)…
- DOM(Document Object Model): 文档对象模型,拥有可以对HTML元素进行操作的一系列API的总类
- BOM(Browser Object Model): 浏览器对象模型,与第二点一样顾名思义,拥有对浏览器进行操作的一系列API
API即一系列针对不同对象进行不同操作的一系列方法(函数)的集合,也就是一个“工具箱”。
以下JavaScript简称JS
二 JS数据的输出方式
1.window.alert(“警告”) 弹出警告框
2.console.log(“我在控制台”) 写入到浏览器的控制台。
3.document.write(“hello world”) 写入html的文档流里
4.document.getElementById(“p1”).innerHTML=“我是p1 我改变了!!”;对html结构里的元素进行修改插入(更精确)
三 JS与HTML联接的方式
- 外部文件联接
<script src="./js外.js">
</script>
外部js文件:
var person = { name: "lihua", id: 11, score: 99 }
for (x in person)
{
console.log(person[x])
}
- 内部联接:把
<script>
标签放在<body>
标签内或者内
<body>
<button>点我</button>
<script>
var person = { name: "lihua", id: 11, score: 99 }
for (x in person)
{
console.log(person[x])
}
</script>
</body>
四 JS变量
1.变量命名规则
- 变量名由数字、字母、下划线__、美元符号"$"构成;
- 变量名不能是关键字;
- 变量名不能以数字开头;
- 变量名大小写敏感
- 不能出现空格
例如:
3a、8l、class(关键字)、abstract(关键字)都不是变量名
A1与a2属于不同的变量名。
函数getElementById 与 getElementbyID 是不同的。
变量名命名推荐驼峰式命名:JavaScript,前中单词首字母大写。
2.变量关键字
1.var关键字:所有的变量都可以由var变量关键字定义
例如:
var a=1;表示a为Number类型;
var s=“hello”;表示s为String类型。
2.let关键字:是ECMAScript-2015年(ES6版本)定义出来的变量关键字,let定义的变量只能在其对应的作用域内生效。
例如:(与var对比)
var x = 10;
// 这里输出 x 为 10
{
var x = 2;
// 这里输出 x 为 2
}
// 这里输出 x 为 2
But:
var x = 10;
// 这里输出 x 为 10
{
let x = 2;
// 这里输出 x 为 2
}
// 这里输出 x 为 10
ES6推出关键字let的同时也推出了块级概念"{}",也就是用{}定义一个作用域,使得let只在其内部生效。
由例如:
let x = 10;就表示全局变量
{
let x = 2;表示局部变量,相当于在函数方法里
}
虽然变量名相同,但是不是同一个变量,他们信息存储的地址是不一样的。
3.const关键字:定义常量
例如 const PI=3.1415926;
变量可以先使用,再用var声明
因为在执行语句之前会进行一次代码的预处理,在编译的过程中就已经识别了var声明了,所以在执行声明在使用之后的变量时,是没有问题的,因为其早就已经定义了。
五 JS数据类型
1.基本数据类型
字符串(String):由双引号或者单引号括起来的值。
数字(Number):1,2,3,4,5,6…
布尔(Boolean):两个值:true和flase
未定义(Undefined):已经声明但是未定义的的变量类型
Symbol:一些特殊的单个变量的类型 例如:作为对象属性
空(null):没有数据,用于清空变量数据 null数据类型是object
2.引用数据类型
对象(Object)类型:
var person={name:"lichao",id:111};
- person表示对象类型,属性有name,id
- 对象类型中对象属性的输出方式:
- document.write(对象名.属性名)
- document.write(对象名[“属性名”])
document.write(person.id)
document.write(person["id"])
person.id=222 /* 属性值修改 */
document.write(person["id"])
数组(Array):
- 数组类型创建对象:
var num=new Array() - 数组数据类型的赋值方法:
i.var num=new Array(1,2,3,4,5)
ii.var num=[1,2,3,4,5]
函数(Function)
function test1(a)
function声明了test1为一个函数
x表示形式参数
function test1(x)
{
var i,j,x;
if(x==2||x==3)
document.write(x+"是质素");
for(i=2;i<=parseInt(x/2);i++)
{
if(x%i===0)
{
document.write(x+"不是质素");
break;//判断x不为质素
}
else if(i==parseInt(x/2))
{
document.write(x+"是质素");
break;
}
}
}
JavaScript 变量均为对象。当声明一个变量时,就创建了一个新的对象。
3.数据类型转换
-
字符串转数字:
- 使用Number():
var s = “123.56”
var a = Number(s);// a打印123.56 - 使用parseInt和parseFloat:
var s = “123.56px”
var a = parseFloat(s);// a打印123.56
var a = parseInt(s);// a打印123
var a = Number(s);//a打印NaN
NaN表示Number类型的一个值:not a Number 表示该字符串不是一个数字 - 使用"-"号:
var s = “123”
var a = s - “1”;//a打印122 Number类型
var a = s - “0”;//a打印123 Number类型
var a = s-0;//a打印123 Number类型
- 使用Number():
-
数字转字符串
- 使用String():
var a = 123;
var s = String(a);//s打印"123" - 使用toString():
var s = a.toString();//s打印"123"
JavaScript 变量均为对象。当声明一个变量时,就创建了一个新的对象,所以变量a变成了一个对象来调用方法toString进行转换 - 使用"+":
var a = 123;
var s = 123+“0”;//s打印"1230"
+运算符左右两边必有一个String类型数据
- 使用String():
-
转布尔类型
- 使用Boolean():
var a = 1;
var b=Boolean(a);//b打印true
var a = 0;
var b=Boolean(a);//b打印flase - 各类型中除了:" "、0、null、undefined、NaN在转布尔时都是转换成flase外,其他的都是转换成true.
- 使用Boolean():
六 for/in循环
for/in遍历对象属性或者数组元素
var person = { name: "lihua", id: 11, score: 99 }
var car = new Array(1, 2, 3, 4, 5)
for (x in car)
{
console.log(car[x])
}
for (x in person)
{
console.log(person[x])
}