使用javascript Truthy和Falsy Value VS'==='运算符检查If语句是真还是假

时间:2015-12-29 05:46:25

标签: javascript

我搜索了很多,我有多种方法来检查语句是真还是假。我发现检查null,undefined或blank变量的标准函数是使用truthy值,如。

  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?

我需要更短的保存方式来做到这一点。现在我对这两个解决方案感到困惑。我是否需要按照标准方式检查语句是真还是假,或者我需要使用'==='运算符。

2 个答案:

答案 0 :(得分:2)

检查值是null还是undefined("空白"在您的术语中)时的标准是使用x == null。这是做x === null || x === undefined的简称。

您会发现,x === null实际上无法检查undefined,因为

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

检查" truthy"之间存在差异。价值并检查nullundefined。但是,nullundefined都是" falsey"值,所以如果你想要做的就是检查你的变量是否存在并且是" truthy",那么if(x)就可以了。请注意,您可能期望(没有经验)某些事情是真/假的。例如:

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

然后有一些价值观不是真正的"真实的"或" falsey"。例如:

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

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

< 3 JavaScript

答案 1 :(得分:2)

  

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

     

使用 == 仅按值进行比较

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