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

问题描述 投票:0回答:5

检查

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

if (myvar === false)

没问题,但

myvar
可能未定义。仅可接受
false
值,而不是未定义。

还有比

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

javascript variables if-statement undefined
5个回答
66
投票

如果变量被声明,则:

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) {

8
投票
if(typeof myvar === 'boolean' && !myvar)

4
投票

怎么样

if (myvar !== undefined && myvar === false)


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

0
投票

使用 lodash 你可以使用 isBoolean func

if(isBoolean(myvar) && myvar === false)
© www.soinside.com 2019 - 2024. All rights reserved.