1. js
1. <script>标签的位置
放在HTML最后面,</body>之前
2. 数据类型
2.1 字符串
2.2 数值
整数
浮点数(任意位)
2.3 布尔值
true或false
2.4 数组 [ ]
数组元素类型可以不同
(1)Array声明
①声明数组,指定长度
var arr = Array(4);
②声明数组,不指定长度
var arr = Array();
③声明时填充元素
var arr = Array("A","AB","CD");
(2)使用 [ ]
var arr = ["A","AB","CD"];
(3)关联数组
上面的数组通过下标填充元素或获取元素
关联数组:下标不是数字,而用字符串
var a = Array(); a["name"] = "XT";
上面的操作:给数组对象a添加了 name 属性(不太好的方式)
2.5 对象
(1)Object
var obj = Object(); obj.name = "XT"; obj.age = 30;
这里给obj对象添加了两个属性,并给属性赋值
(2){ }
var obj = {name:"XT",age:30};
3. 运算符
3.1 算数运算符
3.2 赋值运算符
3.3 比较运算符
==:不严格比较,根据值、含义判断是否相等 如false和空字符串'' 认为相等、123和"123"认为相等
===:严格比较,类型、值都要相等才等
3.4 逻辑运算符
3.5 类型运算符
typeof(x):变量x的类型
a instanceof b:a是否是b的实例对象
3.6 位运算符
4. 函数
同一个函数调用时可传入不定个数的参数,参数实际上用一个数组保存,函数接收的是这个数组
函数体内可通过 arguments 对象访问参数数组
function fun(num1,num2) { //XXX }
①arguments对象的长度根据传入参数个数决定,而不是命名参数(形参:num1、num2)决定
②arguments对象和命名参数的内存空间是彼此独立的
③尽管内存空间彼此独立,但对arguments对象值的修改会同步到命名参数上去(只会单向同步)
④如果传入参数个数少于命名参数个数:比如这里只传了一个参数进来,则
num2会被赋值undefined
对arguments[1]设置值不会同步到num2去
没有函数重载,如果写了多个同名函数,则最后面的生效
5. 作用域
(1)全局作用域
在函数之外声明的变量拥有全局作用域
(2)函数作用域
在函数内声明的变量有函数作用域
(3)用 let 声明块级作用域的变量
(4)用const声明块级作用域的不可再赋值变量