Javascript 检查变量是否为false,是否为true或未定义

Javascript 检查变量是否为false,是否为true或未定义,javascript,variables,if-statement,undefined,Javascript,Variables,If Statement,Undefined,检查myvarjavascriptvariable===false与否的最佳方法是什么(它也可能未定义) 可以,但myvar可能未定义。只有false值是可接受的,而不是未定义的 任何短于if(typeof myvar!==“undefined”&&myvar==false)?如果(myvar!==undefined&&myvar==false)?声明变量,那么: 会很好的==< /代码>不会考虑 false >代码>未定义。 如果它是未定义的和未声明的,那么您应该在尝试使用它之前检查它的类型(

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

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

任何短于
if(typeof myvar!==“undefined”&&myvar==false)

如果(myvar!==undefined&&myvar==false)?

声明变量,那么:

会很好的<代码>==< /代码>不会考虑<代码> false >代码>未定义。

如果它是
未定义的
和未声明的,那么您应该在尝试使用它之前检查它的类型(否则您将得到一个引用错误)

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

var myvar;
// ...
// some code that may or may not assign a value to myvar
// ...
if (myvar === false) {
在nodejs中使用它是可能的

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

只有
false
undefined
,或者您只是在寻找任何“falsy”值,这将是
if(myvar)…
?您应该做得很好,或者如果您真的想显式,那么
if((myvar==false)&&(myvar!==undefined)){
未定义的
可以重新定义为一些其他值,因此您应该始终使用
typeof
或定义一个本地
未定义的
@Derek朕會功夫 不再使用现代浏览器了。@IngoBürk-互联网上的大多数用户都没有现代浏览器,尤其是商业环境中的计算机。@Derek朕會功夫 你可以很容易地查找统计数据,发现互联网上的大多数用户实际上使用的浏览器已经足够现代化,不允许这样做。但是,无论哪种方式,如果你的代码重新定义了
未定义的
,你无论如何都在做非常非常错误的事情。如果一个库这样做了,就把它扔掉。(出于语义原因,我个人仍然更喜欢检查的
类型,我只是在争论重新定义值的观点)
var myvar;
// ...
// some code that may or may not assign a value to myvar
// ...
if (myvar === false) {
if(typeof myvar === 'boolean' && !myvar)
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