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

rgw*_*zdz 45 javascript

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

选项A:

var a = null,
    b = null;
Run Code Online (Sandbox Code Playgroud)

选项B:

var a,
    b;
Run Code Online (Sandbox Code Playgroud)

Kha*_* TO 39

这取决于具体情况.

  • "undefined"表示该值不存在.typeof返回"未定义"

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


Ste*_*ler 18

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

  • 那么是否有必要'赋值'未定义,因为正如你所说它们毕竟是未定义的? (9认同)
  • 如上所述,没有必要声明未定义,但如果你确实声明未定义,那么在测试该值时你不会知道你是故意设置它还是从未实际设置它.这就是为什么在可能没有值的情况下我更喜欢null. (5认同)

Ken*_*nyC 11

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

if(jane.isManager == false){
  jane.employees = null
}
Run Code Online (Sandbox Code Playgroud)

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


Vis*_*ria 6

一般来说,我定义null为它表示人为设置的值,并undefined表示没有设置发生。


sni*_*rad 5

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

如果是字符串,我会将其设置为空字符串 ='',对象 ={} 和数组 = [] 相同,整数 = 0。

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