设置JavaScript变量= null,或者不定义

Set JavaScript variable = null, or leave undefined?

本文关键字:或者 定义 null JavaScript 变量 设置      更新时间:2023-09-26

在JavaScript函数的顶部声明变量时,最佳实践是将它们设置为null,还是将其设置为'未定义'?另一种提问的方式是,在什么情况下需要下面的每个选项?

选项:

var a = null,
    b = null;

选项B:

var a,
    b;

这取决于上下文。

  • "undefined"表示该值不存在。typeof返回"undefined"

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

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

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

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

否则,如果它是一个尚未定义的变量或函数(因此,目前不是"可用的"),但应该稍后设置,我通常不定义它。

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

我通常将其设置为我期望从函数返回的任何值。

如果是字符串,则将其设置为空string = ", object ={}和array=[]也是如此,整数= 0。

使用这个方法节省了我检查null/undefined的需要。我的函数将知道如何处理字符串/数组/对象,而不管结果。

唯一需要设置(或不设置)的情况是,如果您需要显式检查变量 a 是否恰好设置为nullundefined

if(a === null) {
}

…不等于:

if(a === undefined) {
}

也就是说,a == null && a == undefined将返回true

小提琴

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

var a, b = null;
c = {a, b};
console.log(c);
console.log(JSON.stringify(c)) // a omited

*或一些以类似方式工作或在

下面使用JSON.stringify的实用程序函数/库

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

  1. null为空值或不存在值。
  2. null必须赋值

你可以给一个变量赋null值,表示当前该变量没有任何值,但以后会有。null表示没有值。

: -

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

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

相关文章: