Javascript test(object&& object!==“null”&& object!==“undefined”)

时间:2012-09-21 17:34:35

标签: javascript

我似乎经常使用这个测试

if( object && object !== "null" && object !== "undefined" ){
    doSomething();
}

on objects我从服务电话或阅读Cookie回来(因为不同的浏览器会返回不同的值nullundefined"null"或{{1 }})。

是否有更简单/更有效的方法进行此检查?

9 个答案:

答案 0 :(得分:30)

我认为你不能做到这一点更简单,但你当然可以将这个逻辑重构为一个函数:

function isRealValue(obj)
{
 return obj && obj !== 'null' && obj !== 'undefined';
}

然后,至少你的代码变为:

if (isRealValue(yourObject))
{
 doSomething();
}

答案 1 :(得分:8)

如果你有jQuery,你可以使用$.isEmptyObject()

$.isEmptyObject(null)
$.isEmptyObject(undefined)
var obj = {}
$.isEmptyObject(obj)

所有这些调用都将返回true。希望它有所帮助

答案 2 :(得分:3)

如果object真实,我们已经知道它不是nullundefined(假设字符串值是错误的)。我认为不需要null而不是undefined测试。

如果是这样,与nullundefined的简单比较就是比较!= null

if( object != null ){
    doSomething();
}

仅当doSomething既不是object也不是null时,undefined函数才会运行。

答案 3 :(得分:3)

if(!!object){
  doSomething();
}

答案 4 :(得分:2)

也许就像这样

   if (typeof object !== "undefined" || object !== null)
    // do something

答案 5 :(得分:1)

也许是这样的:

/\{|\}|;/

答案 6 :(得分:0)

我认为您可以通过以下方式简化您的逻辑:

if (object != null && typeof(object) == "object") {
    doSomething();
}

主要问题是,如果您只检查typeof(object) == "object",则true的类型为{{,如果objectnull,它将返回null 1}}。但是,如果您首先检查"object",则可以确定自己所拥有的东西既不是object != null也不是undefined

答案 7 :(得分:0)

这应该没有任何问题。

if(object){ // checks for null and undefined
    doSomething();
}

答案 8 :(得分:0)

检查对象是否为空的最佳方法是使用以下实用工具。

创建功能

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
}