请考虑以下代码:
var x = undefined;
Run Code Online (Sandbox Code Playgroud)
这是一个自相矛盾的代码.是否定义了x?JavaScript的实现是x从内存中删除变量,还是为它分配值undefined?
未声明的变量与未定义的变量之间存在差异:
var x; //x is equal to *undefined*
alert(y); //error, y is undeclared
Run Code Online (Sandbox Code Playgroud)
这不是自相矛盾的,但它是多余的:
var x = undefined;
Run Code Online (Sandbox Code Playgroud)
想想undefined作为一个简单的变量时,它尚未初始化值-或当它尚未初始化的对象属性的值为或声明.