我一直试图破解JS中关于 null 和 undefined 的解释,这里有关于stackoverflow和其他地方的解释。我想我看到会出现一定程度的误传。
对于没有经验的开发人员,当控制台告诉我们变量或属性是 undefined 时,它是编码错误的结果(例如:我忘了给变量赋值或返回一个来自函数的价值)。这意味着Javascript已将 undefined 分配给变量或属性。
作为noobies做教程,我们从未被要求明确地将 undefined 分配给变量。
现在在一些示例代码中我们看到if语句 if(x === null ){some code} 我们不知道为什么x等于 null ,或者 null 如何分配给x
大多数解释,在堆栈溢出和其他地方,显示了显式指定null的示例(例如:var y = null )。也就是说, null 不是编码错误的结果,而Javascript 不指定 null 。 Null 必须由程序员分配(为什么他们这样做也是一个谜)。
现在我尝试通过创建对象,设置其属性以及使用delete删除这些属性的值来强制脚本返回 null ,这样可以解决这个问题: obj === null // true 但我得到假(因为obj === undefined // true)
还试过这个:
var A = function(name) {
this.name = name;
}
var a = new A('alpha');
a.name; //'alpha'
A.prototype = {x:23};
a.x; //according to tutorial, this was supposed to have returned *null*, but instead returned *undefined*
所以问题是,如何“强制脚本返回 null ”?。