如何检查一个variables是否不为空?
我知道下面是JavaScript中检查variables是否为null
的两种方法,但我很困惑,这是最佳实践。
我应该这样做:
if (myVar) {...}
要么
if (myVar !== null) {...}
他们不相同。 如果myVar
是真的 (即在条件中求值为true
),第一个将在if
语句之后执行块,而如果myVar
是除null
之外的任何值,则第二个将执行块。
在JavaScript中不唯一的值是以下(又名falsy值):
-
null
-
undefined
-
0
-
""
(空串) -
false
-
NaN
阅读这篇文章: http : //enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-2/
它总体上有一些JavaScript的好的提示,但是它提到的一件事是你应该检查如下的null:
if(myvar) { }
它还提到了你可能没有意识到的那些被认为是“虚假的”。
这里是你如何testing一个variables是不是NULL:
if (myVar !== null) {...}
如果myVar不为空,它将被执行。如果myVar是未定义的或者是假的或者是0
或者是NaN
或者别的什么,它将被执行。
还有另一种可能的情况,我刚才遇到。
我做了一个ajax调用,并以string格式将数据返回为空。 我必须像这样检查它:
if(value != 'null'){}
所以,null是一个读取“null”而不是真的为空的string。
编辑:应该明白,我不卖它应该做的方式。 我有一个场景,这是唯一可以做到的方法。 我不知道为什么……也许写后端的人是错误地提交数据,但不pipe这是不是现实生活。 令人沮丧的是,看到这个由理解不完全正确,然后由实际帮助的人投票决定的人低估了投票。
如果myVar
为null,那么如果block不执行其他方式将执行。
if (myVar != 'null') {...}
你在这里列出的两个条件陈述并不比另一个更好。 您的使用情况取决于情况。 在第二个例子中,你有一个错字。 感叹号后应该只有一个等号。
第一个示例确定myVar中的值是否为true并执行{…}中的代码
第二个例子评估如果myVar不等于null,如果这种情况是真的,它会执行您的代码{…}
我build议看看有关更多技术的条件陈述。 一旦你熟悉它们,你可以决定什么时候需要它们。