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
Check if variable is false and not either true or undefined
提问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

