设置JavaScript变量= null,还是保留undefined?

时间:2013-05-10 03:37:25

标签: javascript

在JavaScript函数顶部声明变量时,最佳做法是将它们设置为null,还是保留为“undefined”?另一种询问方式,下面是什么情况要求每个选项?

选项A:

var a = null,
    b = null;

选项B:

var a,
    b;

9 个答案:

答案 0 :(得分:36)

这取决于具体情况。

  • “undefined”表示此值不存在。 typeof返回“未定义”

  • “null”表示此值存在空值。当您使用typeof测试“null”时,您将看到它是一个对象。在将“null”值序列化为后端服务器(如asp.net mvc)的其他情况下,服务器将收到“null”,但是当您序列化“undefined”时,服务器不太可能收到值。

答案 1 :(得分:17)

当我没有赋值时,我声明它们是未定义的,因为它们毕竟是未定义的。

答案 2 :(得分:9)

通常,我对我知道可以具有“null”状态的值使用null;例如

if(jane.isManager == false){
  jane.employees = null
}

否则,如果它的变量或函数尚未定义(因此,此时不是“可用”)但是应该稍后设置,我通常会将其保留为未定义。

答案 3 :(得分:1)

您需要设置(或不设置)的唯一时间是您需要明确检查变量 a 是否设置为null或{{1 }}

undefined

......与以下内容不同:

if(a === null) {

}

也就是说,if(a === undefined) { } 将返回a == null && a == undefined

Fiddle

答案 4 :(得分:1)

一般来说,我定义为null表示人类设置值,未定义表示未进行任何设置。

答案 5 :(得分:1)

我通常将它设置为我期望从函数返回的任何内容。

如果是一个字符串,而不是我将它设置为空字符串='',对于object = {}和array = [],则为整数= 0.

使用此方法省去了检查null / undefined的必要性。无论结果如何,我的函数都知道如何处理字符串/数组/对象。

答案 6 :(得分:0)

我们应该了解null的两个特征:

  1. 是空值或不存在的值。
  2. 必须分配

您可以将null分配给变量,以表示该变量当前没有任何值,但以后会有。空表示没有值。

示例:-

 let a = null;
 console.log(a); //null

答案 7 :(得分:0)

如果使用此值来分配某些对象的属性并稍后调用JSON.stringify *,请小心-空值将保留,但未定义的属性将被忽略,如下例所示:

var a, b = null;

c = {a, b};

console.log(c);
console.log(JSON.stringify(c)) // a omited

*或某些以类似方式工作或在下面使用JSON.stringify的实用程序功能/库

答案 8 :(得分:-14)

您可以使用'';在Javascript中声明NULL变量