为什么人们在JavaScript中声明为null?

时间:2011-04-10 18:12:54

标签: javascript

  

可能重复:
  Why is there a null value in JavaScript?

我不明白null是什么。 '未定义'也是。

5 个答案:

答案 0 :(得分:8)

有助于理解值和变量之间的差异。

变量是包含值的存储位置。

null表示存储位置不包含任何内容(但null本身只是一种特殊的值)。仔细阅读最后一句话。 nullnull的含义之间存在差异。 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) (如果我错了,请纠正我)

未启动的变量(未知)未定义。

的问候, /吨