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;
}
我想检查一个 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;
}