检查变量是否为false,而不是true或undefined

时间:2014-09-25 19:36:45

标签: javascript variables if-statement undefined

检查是否myvar javascript variable === false的最佳方法是什么(也可能未定义)。

if (myvar === false)

会好的,myvar可能是未定义的。只有false值是可以接受的,而不是未定义的。

是否短于if (typeof myvar !== "undefined" && myvar === false)

5 个答案:

答案 0 :(得分:28)

如果变量声明,那么:

if (myvar === false) {

会正常工作。 ===不会将false视为未定义。

如果undefined 未声明,则应在尝试使用之前检查其类型(否则会出现引用错误)。

if(typeof myvar === 'boolean' && myvar === false) {

也就是说,如果您打算尝试使用变量,则应确保始终声明该变量。

var myvar;
// ...
// some code that may or may not assign a value to myvar
// ...
if (myvar === false) {

答案 1 :(得分:3)

if(typeof myvar === 'boolean' && !myvar)

答案 2 :(得分:1)

if (myvar !== undefined && myvar === false)怎么样?

答案 3 :(得分:0)

如果要检查任何falsy case,则

if(myVar) {
  // Your conditional code here.....
}

也应该起作用。请注意,在那种情况下,零(0),空字符串("")或非数字(NaN)也将被认为是虚假的。

答案 4 :(得分:0)

在nodejs中使用node-boolify可以实现

var Boolify = require('node-boolify').Boolify;
if (Boolify(myVar) == false) {
    //Instructions when satisfy
} else {
    //Instructions when not satisfy
}

布尔值转换结果

Boolify(true); //true
Boolify('true'); //true
Boolify('TRUE'); //null
Boolify(1); //true
Boolify(2); //null
Boolify(false); //false
Boolify('false'); //false
Boolify('FALSE'); //null
Boolify(0); //false
Boolify(null); //null
Boolify(undefined); //null
Boolify(); //null
Boolify(''); //null