Я хочу проверить объект JS (пример: {x: false, y: true}), если некоторые свойства являются либо логическими, либо если они (null || undefined).
Есть ли простой способ в JS или Underscore, чтобы проверить это, не делая
(obj.x != null || obj.x != undefined)
???
Я нашел простой способ в Underscore:
_.isBoolean(obj.x)
Благодаря Rajesh я знаю теперь, что obj.x != null
возвращает то же самое, если x равно null или undefined.
Я предпочитаю функцию Underscore, потому что она читаема, но нулевое сравнение является родным JS и кажется более эффективным и более простым.
Оператор typeof
может возвращать, является ли он boolean
или что-то еще
Ссылка здесь
Вы можете использовать только стандартный оператор 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
Попробуйте это Надеюсь, это поможет вам,
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;
}
v === undefined
если вы уже проверили (type === 'undefined')
? Также вы можете просто проверить typeof(c) === "object" && Object.keys(v) === 0
В Javascript undefined оценивается как false, поэтому вы должны быть в состоянии сделать
if (obj.x) {
// ...
}
obj.x
потерпит неудачу для false
или 0
или ""