设置JavaScript变量= null,或者不定义
Set JavaScript variable = null, or leave undefined?
在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
是否恰好设置为null
或undefined
。
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的两个特性:
- null为空值或不存在值。
- null必须赋值
你可以给一个变量赋null值,表示当前该变量没有任何值,但以后会有。null表示没有值。
: -
let a = null;
console.log(a); //null
您可以使用'';
在Javascript中声明NULL变量
- 用嵌套函数和默认函数定义函数
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 为什么“;未定义的“;在JavaScript中结束循环
- 如何为javascript创建自定义标签?或者这是我不知道的其他事情吗;我不知道
- Javascript函数返回'NaN'或者'未定义'
- 使用框架/语言中的getter/setter,或者定义自己的显式getter/setters
- 我可以在 RichFace 中为文件上传实现多个文件选择,或者使用 javascript 为此实现自定义标签吗?
- 如何在<Div类=“;abc定义“;style='显示“>或者在<Div类=“;aB-cd-e
- Javascript:使用变量,或者如果它's未定义,为默认字符串
- 是$scope$对于一个大型应用程序来说,广播速度足够快,或者我应该创建一个自定义消息总线
- 设置JavaScript变量= null,或者不定义
- $在Angular中未定义,或者document.getElementById()为Null
- Javascript:将变量定义为函数调用的最有效方法,或者将null定义为变量
- TypeError: $(. .).风格没有定义——bug或者我的错
- 哪一种是自定义的,通过书本的方式获取用户的本地时间/时区?(或者:谷歌/脸书是怎么做到的?)
- 如何用磁带为测试节点或javascript编写自定义断言,或者检查子字符串而不是t.deepEquals()
- 在HTML中使用自定义标记的含义是什么,或者不使用自定义标记有什么优点
- 如何防止自定义事件被重复触发 - 或者我可以“重置”jQuery .one()函数
- this 变量是 Window 对象,或者在 then 方法的 promise 中未定义
- 或者gate(||)将false排序为未定义