请考虑以下代码:
var x = undefined;
这是一行自相矛盾的代码。变量x是否已定义?JavaScript实现会将变量x
从内存中删除,还是会给它赋值undefined
?
请考虑以下代码:
var x = undefined;
这是一行自相矛盾的代码。变量x是否已定义?JavaScript实现会将变量x
从内存中删除,还是会给它赋值undefined
?
变量的 未声明 和 未定义 是有区别的:
var x; //x is equal to *undefined*
alert(y); //error, y is undeclared
这并不是自相矛盾,但它确实是多余的:
var x = undefined;
把undefined
看作是一个变量在未被初始化时的值,或者是一个对象属性在未被初始化或声明时的值。
undefined
在 JS 中只是一种数据类型/值,类似于null
。在说“变量未定义”和“变量的值为未定义”之间肯定会有混淆。 - Felix Kling