在javascript中undefined和null几乎是没有区别的
undefined==null;//true;
区别:
null是一个表示“无”的对象,转为数值为0;或者说没有对象,此处不应该有值;
表示:(1)作为函数的参数,表示该函数的参数不是对象。
(2)作为对象原型链的终点。
eg:
Object.getPrototypeOf(Object.prototype) // null
undefined是一个表示“无”的原始值,转为数值为NaN,就是说此处应该有一个值,但是还没有定义。
表示:(1)对象被声明了,但是没有被赋值,就是undefined;
(2)调用函数时,参数没有被提供,该参数就等于undefined;
(3)对象没有赋值的属性,该属性值为undefined;
(4)函数没有返回值时,默认返回undefined;
eg:
var i; i // undefined function f(x){console.log(x)} f() // undefined var o = new Object(); o.p // undefined var x = f(); x // undefined