Javascript test (object && object! == "null" && object! == "undefined" )
Кажется, я много использую этот тест
if( object && object !== "null" && object !== "undefined" ){
doSomething();
}
on objects
Я возвращаюсь из служебного вызова или из чтения файлов cookie (поскольку разные браузеры возвращают разные значения null
, undefined
, "null"
или "undefined"
).
Есть ли более простой/эффективный способ выполнения этой проверки?
Ответы
Ответ 1
Я не думаю, что вы можете сделать это проще, но вы, безусловно, можете преобразовать эту логику в функцию:
function isRealValue(obj)
{
return obj && obj !== 'null' && obj !== 'undefined';
}
Затем, по крайней мере, ваш код будет выглядеть следующим образом:
if (isRealValue(yourObject))
{
doSomething();
}
Ответ 2
Если у вас есть jquery, вы можете использовать $.isEmptyObject().
$.isEmptyObject(null)
$.isEmptyObject(undefined)
var obj = {}
$.isEmptyObject(obj)
Все эти вызовы вернут true. Надеюсь, что это поможет.
Ответ 3
Если object
является правдивым, мы уже знаем, что это не null
или undefined
(предполагая, что строковые значения являются ошибкой). Я предполагаю, что требуется тест null
, а не undefined
.
Если это так, простое сравнение с null
или undefined
заключается в сравнении != null
.
if( object != null ){
doSomething();
}
Функция doSomething
будет работать, только если object
не является null
и undefined
.
Ответ 4
может быть, как это
if (typeof object !== "undefined" || object !== null)
// do something
Ответ 5
if(!!object){
doSomething();
}