undefined是未定义,在变量没有赋值的时候的值即为undefined。"缺少值",就是此处应该有一个值,但是还没有定义。
underclared即为被污染的命名,访问没有被声明的变量,会抛出异常,终止执行。
null是一个空的对象引用。"没有对象",即该处不应该有值
undefined和null在 if 语句中,都会被自动转为false,相等运算符甚至直接报告两者相等。typeof undefined会返回undefined ,而typeof null 总返回 object (typeof有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined")
false == undefined;//false false == null;//false null == undefined;//true
( window.foo || ( window.foo = "bar" ) );
问题:window.foo的值是多少?关于“||” 的运算5-15随笔已记录。如果window.foo是false,则window.foo='bar';这里的window.foo相当于全局变量,但是未定义,为undefined,实际||前为if判断,undefined自动转为false;