我想检查一个JS对象(例如:{x:false,y:true}),如果某些属性是boolean或者它们是(null || undefined)。
JS或Underscore是否有一种简单的方法可以在不执行
的情况下进行检查(obj.x != null || obj.x != undefined)
???
答案 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) {
// ...
}