Javascript 变量检查:(null 或 undefined)与布尔值

Javascript variable checking: (null or undefined) vs boolean

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

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

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

???

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

_.isBoolean(obj.x) 

我现在知道 obj.x != null returns 如果 x 为空或未定义则相同。

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

在Javascript中,undefined被评估为false,所以你应该可以做到

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

您可以只使用标准的 typeof 运算符,returns '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

typeof 运算符可以 return 无论是 boolean 还是其他

引用here

试试这个希望对你有帮助,

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;
    }