如何检查一个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议看看有关更多技术的条件陈述。 一旦你熟悉它们,你可以决定什么时候需要它们。