如何检查变量是否为空?

IT技术 javascript comparison null-check
2021-02-24 22:12:42

我知道下面是 JavaScript 中检查变量是否不是的两种方法null,但我很困惑哪个是使用的最佳实践。

我应该这样做:

if (myVar) {...}

或者

if (myVar !== null) {...}
6个回答

它们不是等价的。第一个将以下所述执行块if语句如果myVartruthy(即计算结果为true在条件),而如果第二将执行块myVar比其它任何值null

JavaScript 中唯一不真实的如下(又名虚假值):

  • null
  • undefined
  • 0
  • "" (空字符串)
  • false
  • NaN

以下是测试变量是否为 NULL 的方法:

if (myVar !== null) {...}

如果myVar的不为空..如果myVar的是不明确的或虚假的或将要执行的块将被执行0NaN或其他任何东西..

万一那些想知道......这不会检查空字符串("")和未定义。请参阅我的小提琴作为参考:jsfiddle.net/b0tm7yaf
2021-05-11 22:12:42

阅读这篇文章:http : //enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-2/

它对 JavaScript 有一些很好的提示,但它提到的一件事是你应该检查 null,如:

if(myvar) { }

它还提到了您可能没有意识到的被认为是“虚假”的东西。

该链接不再有效。我在此处找到了似乎是该帖子的副本:appendto.com/2010/10 /... 不过这很奇怪,因为 Elijah 的帖子(和示例代码)会表明他是作者,但他并未在此处列为作者...
2021-04-18 22:12:42
如果值存在但为 0(零),这将不起作用
2021-05-06 22:12:42
这种检查实际上并不安全。如果 myvar 为 0、false 或任何其他虚假值,则测试将失败(如果您只想检查非空)。因此,如果变量永远不会有另一个虚假值,则仅使用它来检查 not null。
2021-05-07 22:12:42
那个网站好像不存在了。如果您可以在帖子本身中包含信息,而不仅仅是外部链接,那将会很有帮助。
2021-05-14 22:12:42
  • 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 的字符串。

编辑:应该理解的是,我并没有按照应该的方式出售它我有一个场景,这是唯一可以完成的方法。我不知道为什么......也许编写后端的人错误地呈现了数据,但无论如何,这就是现实生活。令人沮丧的是,看到有人理解这不太正确,然后又被实际上有帮助的人投票赞成,这是令人沮丧的。

显然你不明白。我知道你认为你有,但你没有。
2021-04-21 22:12:42
与其与null字符串进行比较,不如解析您的值
2021-04-24 22:12:42
是的,我投了反对票,因为我认为这是错误的解决方案。在ajax调用的情况下,最好先做value = JSON.parse(value)再用简单妥当的value != null测试
2021-05-05 22:12:42
我明白这是一个有效的解决方案。但我认为这不是一个好建议,所以请尊重我的反对意见。
2021-05-06 22:12:42
无论您是否理解它的应用,这个答案都是合法的。我不喜欢因为发布实际有效的东西而被否决。在您触摸它之前,您是否注意到它有一个赞成票?那是因为这是一个真实的场景。
2021-05-15 22:12:42