我知道下面是 JavaScript 中检查变量是否不是的两种方法null
,但我很困惑哪个是使用的最佳实践。
我应该这样做:
if (myVar) {...}
或者
if (myVar !== null) {...}
我知道下面是 JavaScript 中检查变量是否不是的两种方法null
,但我很困惑哪个是使用的最佳实践。
我应该这样做:
if (myVar) {...}
或者
if (myVar !== null) {...}
它们不是等价的。第一个将以下所述执行块if
语句如果myVar
是truthy(即计算结果为true
在条件),而如果第二将执行块myVar
比其它任何值null
。
JavaScript 中唯一不真实的值如下(又名虚假值):
null
undefined
0
""
(空字符串)false
NaN
以下是测试变量是否为 NULL 的方法:
if (myVar !== null) {...}
如果myVar的不为空..如果myVar的是不明确的或虚假的或将要执行的块将被执行0
或NaN
或其他任何东西..
阅读这篇文章:http : //enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-2/
它对 JavaScript 有一些很好的提示,但它提到的一件事是你应该检查 null,如:
if(myvar) { }
它还提到了您可能没有意识到的被认为是“虚假”的东西。
if(myVar) { code }
只有当myVar
等于时才不会执行您内部的代码:false, 0, "", null, undefined, NaN
或者您从未定义变量myVar
(然后另外代码停止执行并抛出异常)。if(myVar !== null) {code}
仅当myVar
等于null
或您从未定义它(抛出异常)时,才不会执行您内部的代码。在这里你有所有(src)
如果
==(它的否定!=)
===(它的否定!==)
我刚刚遇到了另一种可能的情况。
我做了一个 ajax 调用,并以字符串格式将数据返回为 null。我不得不像这样检查它:
if(value != 'null'){}
因此,null 是一个读取“null”而不是真正为 null 的字符串。
编辑:应该理解的是,我并没有按照应该的方式出售它。我有一个场景,这是唯一可以完成的方法。我不知道为什么......也许编写后端的人错误地呈现了数据,但无论如何,这就是现实生活。令人沮丧的是,看到有人理解这不太正确,然后又被实际上有帮助的人投票赞成,这是令人沮丧的。