JavaScript言语有两个示意”无”的值:undefined和null。
var a = undefined;
var a = null;
a变量分别被赋值为undefined和null,赋值写法相似;而且在用if语句做推断时都邑返回false;以至undefined==null也会返回true。
然则二者照样有区分的:
undefined是一个undefined范例,而null是一个object范例。
null示意”没有对象”,即该处不该该有值。典范用法是:
作为函数的参数,示意该函数的参数不是对象。
作为对象原型链的尽头。
Object.getPrototypeOf(Object.prototype) // null
undefined示意”缺乏值”,就是此处应当有一个值,然则还没有定义。典范用法是:
变量被声清楚明了,但没有赋值时,就即是undefined。
var i; i; // undefined
挪用函数时,应当供应的参数没有供应,该参数即是undefined。
function f(x){ console.log(x); } f(); // undefined
对象没有赋值的属性,该属性的值为undefined。
var o = new Object();
o.p; // undefined
函数没有返回值时,默许返回undefined。 var x = f();
x; // undefined