null 和 undefined 的区别
1、null
(1)表示“没有对象”,即此处不该有值;
(2)typeof null = "object";
(3)转为数值为0;
(4)作为函数的参数,表示该函数的参数不是对象;作为对象原型链的终点
Object.getPrototypeOf(Object.prototype) // null
2、undefined
(1)表示“无”的原始值或者说表示“缺少值”,就是此处应该有一个值但是没有定义;
(2)typeof undefined = "undefined";
(3)转换为数值为NaN;
(4)例如变量被声明了但没有赋值,就等于undefined;函数没有返回值默认返回undefined;对象没有赋值的属性,该属性的值为undefined。
var i; i // undefined function f(x) {console.log(x)} f() // undefined var o = new Object(); o.p // undefined var x = f(); x // undefined