【问题标题】:Check If statement is true or false by using javascript Truthy and Falsy Value VS '===' operator使用 javascript Truthy and Falsy Value VS '===' 运算符检查 If 语句的真假
【发布时间】:2015-12-29 05:46:24
【问题描述】:

我进行了很多搜索,并且有多种方法可以检查语句是真是假。我发现检查 null、未定义或空白变量的标准函数是使用真值。

  if(value) { }

Is there a standard function to check for null, undefined, or blank variables in JavaScript?

我还发现'===' 运算符比'==' 运算符更好用。

Which equals operator (== vs ===) should be used in JavaScript comparisons?

我需要更短更节省的方法来执行此操作。现在我对这两种解决方案感到困惑。我需要按照标准方法来检查语句是真是假还是需要使用'==='运算符。

【问题讨论】:

标签: javascript


【解决方案1】:

检查值是null 还是undefined(您的术语中的“空白”)的标准是使用x == null。这是做x === null || x === undefined的缩写。

你会发现做x === null实际上并不能检查undefined,因为

null == undefined // true
null === undefined // false

检查“真实”值与检查nullundefined 是有区别的。但是,nullundefined 都是“虚假”值,因此如果您只想检查变量是否存在并且“真实”,那么 if(x) 就可以了。请注意,您可能期望(没有经验)是真/假的某些事情不是。例如:

'' == true // false
0 == true // false

还有一些不是“真实”或“虚假”的价值观。例如:

NaN == true // false
NaN == false // false

Find a more complete list of weird stuff (and learn more about == vs ===) in this SO post.

【讨论】:

  • NaN === NaN; // false 实际上,您可以通过 x !== x 很容易地测试 NaN。另请注意,== 会出现奇怪的怪癖,例如 1 == {toString: x => '1'}; // true
  • 是的。目前还不清楚 OP 是更关注null/undefinedtrue/false,还是只关注==/===。如果他更关心==/===,那么请务必查看我链接到的问题。
【解决方案2】:

使用 === 比较值和类型。

使用 == 仅按值进行比较

// Example Program
var a = "0";
var b = 0;
console.log(a==b); // true
console.log(a===b); // false

【讨论】:

  • 您有答案中引用部分的来源吗?我认为它在切入这个经常被误解的问题的核心方面做得很好。
猜你喜欢
  • 2020-11-04
  • 1970-01-01
  • 2012-11-04
  • 1970-01-01
  • 2011-01-13
  • 1970-01-01
  • 2012-02-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多