我不明白null是什么。 '未定义'也是。
答案 0 :(得分:8)
有助于理解值和变量之间的差异。
变量是包含值的存储位置。
null
表示存储位置不包含任何内容(但null本身只是一种特殊的值)。仔细阅读最后一句话。 null
和null
的含义之间存在差异。 99%的时间你只关心null意味着什么。
Undefined
表示变量(与值相对)不存在。
答案 1 :(得分:2)
null
是您在没有值时创建变量时可以使用的对象:
var myVal = null;
执行此操作时,您还可以使用它来检查是否已定义:
// null is a falsy value
if(!myVal) {
myVal = 'some value';
}
我通常不会这样使用它。使用'undefined'很简单,而不是:
var myVal; // this is undefined
它仍然可以作为假值。
创建对象
在javascript中创建对象时,我喜欢在对象函数的顶部声明所有对象属性:
function myObject() {
// declare public object properties
this.myProp = null;
this.myProp2 = null;
this.init = function() {
// ... instantiate all object properties
};
this.init();
}
我这样做是因为它更容易看到对象属性是什么。
答案 2 :(得分:1)
如果变量在当前范围内未知或未初始化,则为undefined
。
如果你想使用一个变量并指出它有一个无效值,你可能想要为它分配null
,因为如果你尝试使用它,访问一个未定义的变量会抛出错误(尽管检查如果它是未定义的)。
如果某些内容未定义,您还可以将其添加到对象中。如果定义了变量但包含null,则您知道该变量可能已被程序的其他部分使用。
答案 3 :(得分:0)
例如,它可以准备一个全局变量,用于代码的更多部分。
如果您使用var iNeedThisEverywhere = null;
启动代码,那么您可以在代码中的更多对象/操作中使用它,但如果您不这样做,则不会在整个代码中共享此变量。
当然,你实际上会在代码中的某个地方放置一些变量,但是由于你在一开始就定义了这个变量,所以无论如何它都将被进一步共享。
答案 4 :(得分:0)
保持null的变量保存对名为null的“黑洞”的引用。
10 + 10 + null = null
Null在历史上与数据库相关,http://en.wikipedia.org/wiki/Null_(SQL) (如果我错了,请纠正我)
未启动的变量(未知)未定义。
的问候, /吨