3.3
任意JS的值都可以转化为布尔值。
下面这些会转化为false:
undefined null 0 -0 NaN ""(空字符串)
其他所有值和对象,包括数组都转为true。
3.4
null是JS的关键字。
undefined是变量的一种取值,不是关键字,表明未初始化,是预定义的全局变量,值就是“未定义”。
null == undefined ==> true
null === undefined ==> false
typeof(undefined) ==> undefined
逻辑运算符长度为2(==和!=),只判断外在值。
严格判断(===),需要类型和值都一样。
null和undefined不包括任何属性和方法。
3.5
当JS解释器启东时,它将创建一个新的全局对象,并给它一组定义的初始属性:
全局属性,全局函数,构造函数,全局对象
在代码的最顶级,可用JS关键字this引用全局对象。
如:
var global = this;
在客户端JS中,window对象充当了全局对象。
声明一个全局变量,这个变量就称为全局对象的一个属性。
3.6
引用字符串s的属性,JS通过调用new String(s)的方式把它转换为对象,同理:
数字 -- Number() 布尔值 -- Boolean()
null和undefined没有包装对象
转换为对象在引用结束后,即销毁。
如:
var s = "test";
s.len ==> 4
var t = s.len;
t ==> undefined
3.7
字符串中的方法返回一个新字符串,原串不变。
对象的比较是引用的比较。