null,undefined,true,false,以及== 和===

undefined是未定义,在变量没有赋值的时候的值即为undefined。"缺少值",就是此处应该有一个值,但是还没有定义。

underclared即为被污染的命名,访问没有被声明的变量,会抛出异常,终止执行。

null是一个空的对象引用。"没有对象",即该处不应该有值

undefinednull在 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;

原文地址:https://www.cnblogs.com/wjx91/p/5641308.html