我似乎经常使用这个测试
if( object && object !== "null" && object !== "undefined" ){
doSomething();
}
我从objects
服务调用或读取 cookie 中返回(因为不同的浏览器返回不同的值null
、undefined
、"null"
或"undefined"
)。
有没有更简单/更有效的方法来做这个检查?
我似乎经常使用这个测试
if( object && object !== "null" && object !== "undefined" ){
doSomething();
}
我从objects
服务调用或读取 cookie 中返回(因为不同的浏览器返回不同的值null
、undefined
、"null"
或"undefined"
)。
有没有更简单/更有效的方法来做这个检查?
我认为你不能让它变得更简单,但你当然可以将该逻辑重构为一个函数:
function isRealValue(obj)
{
return obj && obj !== 'null' && obj !== 'undefined';
}
然后,至少你的代码变成:
if (isRealValue(yourObject))
{
doSomething();
}
如果你有 jQuery,你可以使用$.isEmptyObject()
.
$.isEmptyObject(null)
$.isEmptyObject(undefined)
var obj = {}
$.isEmptyObject(obj)
所有这些调用都将返回 true。希望能帮助到你
if(!!object){
doSomething();
}
如果object
是真的,我们已经知道它不是null
或undefined
(假设字符串值是错误的)。我假设需要一个非null
和非undefined
测试。
如果是这样,一个简单的比较null
orundefined
就是比较!= null
。
if( object != null ){
doSomething();
}
仅当is not或时,该doSomething
函数才会运行。object
null
undefined
也许像这样
if (typeof object !== "undefined" || object !== null)
// do something
也许是这样的:
var myObj = {};
var isEmptyObj = !Object.keys(myObj).length;
if(isEmptyObj) {
// true
} else {
这应该没有任何问题。
if(object){ // checks for null and undefined
doSomething();
}
检查对象是否为空的最佳方法是使用如下所示的实用程序函数。
创建一个函数
function isEmpty(obj) {
for(var key in obj) {
if(obj.hasOwnProperty(key))
return false;
}
return true;
}
通过以下方式使用上述功能:-
所以如果你有一个空对象,你可以使用上面的函数来检查它是否为空。
var myObj = {}; // Empty Object
if(isEmpty(myObj)) {
// Object is empty (Would return true in this example)
} else {
// Object is NOT empty
}
我认为您可以通过以下方式简化您的逻辑:
if (object != null && typeof(object) == "object") {
doSomething();
}
主要的问题是如果你只是检查typeof(object) == "object"
,它会返回true
if object
is null
since null
's type is "object"
。但是,如果您首先检查 ,object != null
则可以确定您所拥有的东西既不是undefined
也不是null
。