Javascript 检查变量是否为假,而不是真或未定义

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/26046687/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-22 22:14:33  来源:igfitidea点击:

Check if variable is false and not either true or undefined

javascriptvariablesif-statementundefined

提问by Haradzieniec

What's the best way to check if myvarjavascript variable === falseor not (it may be undefined as well).

检查myvarjavascriptvariable === false与否的最佳方法是什么(它也可能未定义)。

if (myvar === false)

would be fine but myvarit could be undefined. Only falsevalue is acceptable, not undefined.

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

Any shorter than if (typeof myvar !== "undefined" && myvar === false)?

比 短if (typeof myvar !== "undefined" && myvar === false)吗?

回答by Quentin

If the variable is declaredthen:

如果声明了变量,则:

if (myvar === false) {

will work fine. ===won't consider falseto be undefined.

会正常工作。===不会认为false是未定义的。

If it is undefinedandundeclared then you should check its type before trying to use it (otherwise you will get a reference error).

如果它是undefined并且未声明,那么你应该在尝试使用它之前检查它的类型(否则你会得到一个引用错误)。

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

That said, you should ensure that the variable is always declared if you plan to try to use it.

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

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

回答by Abdulla Chozhimadathil

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

回答by bvx89

How about if (myvar !== undefined && myvar === false)?

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

回答by Ratan Uday Kumar

In nodejs by using node-boolifyit is possible

在 nodejs 中使用node-boolify是可能的

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

Boolean Conversion Results

布尔转换结果

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