Javascript变量检查:( null或undefined)vs boolean

时间:2017-06-08 07:56:17

标签: javascript underscore.js

我想检查一个JS对象(例如:{x:false,y:true}),如果某些属性是boolean或者它们是(null || undefined)。

JS或Underscore是否有一种简单的方法可以在不执行

的情况下进行检查
(obj.x != null || obj.x != undefined)

???

5 个答案:

答案 0 :(得分:2)

您可以只使用标准typeof运算符,如果是布尔值,则返回'boolean'



console.log(typeof undefined === 'boolean'); // false
console.log(typeof null === 'boolean');      // false
console.log(typeof true === 'boolean');      // true
console.log(typeof false === 'boolean');     // true




答案 1 :(得分:2)

typeof运算符可以返回boolean或其他任何内容

参考here

答案 2 :(得分:1)

我在Underscore中找到了一个简单的方法:

_.isBoolean(obj.x) 

Thanks to Rajesh我现在知道如果x为null或未定义,obj.x != null将返回相同的内容。

我更喜欢Underscore函数,因为它可读,但null比较是原生JS,看起来效率更高,更简单。

答案 3 :(得分:0)

试试这希望它能帮到你,

的JavaScript

function test(v) {
        let type = typeof v;
        if(type === 'undefined') {
            return true;
        }
        if(type=== 'boolean') {
            return false;
        }
        if(v === null) {
            return true;
        }
        if(v === undefined) {
            return true;
        }
        if(v instanceof Array) {
            if(v.length < 1) {
                return true;
            }
        }
        else if(type === 'string') {
            if(v.length < 1) {
                return true;
            }
        }
        else if(type === 'object') {
            if(Object.keys(v).length < 1) {
                return true;
            }
        }
        else if(type === 'number') {
            if(isNaN(v)) {
                return true;
            }
        }
        return false;
    }

答案 4 :(得分:-1)

在Javascript中,undefined被评估为false,因此您应该可以

if (obj.x) {
    // ...
}