这里主要强调和Java的不同之处。
一 变量
弱变量类型 可以用来保存任何类型的数据
二 数据类型
五种简单数据类型
Undefined 只有一个值 undefined
Null 也只有一个值 null typeof检测null值时会返回"object"
Boolean
Number
String
一种复杂数据类型Object
不支持创建自定义类型的机制
针对松散类型,提供了一种手段用于检测给定变量的数据类型--typeof
三 操作符
全等和不全等: 区别在于比较之前是否转换操作数
var result1 = ("55"==55); //true 因为转换后相等
var result2 = ("55" === 55) //false 因为不同的数据类型不相等
记住:null == undefined会返回true 因为它们是类似的值。
四 函数
1.理解参数
不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型,参数在内部是用一个数组来表示的,函数接收到的始终是这个数组,而不关心数组中包含哪些参数。在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。arguments对象只是与数组类似,可以使用[]来访问它的每一个元素,使用length属性来确定传递进来几个参数。
2.没有重载
不同于Java,ECMAScript函数不能实现重载,它没有函数签名,因为其参数是由包含零或多个值的数组来表示的。而没有函数签名,真正的重载是不可以做到的。
五 执行环境和作用域
没有块级作用域