Javascript test(object && object!=="null"&& object!=="undefined")

Nic*_* G. 22 javascript

我似乎经常使用这个测试

if( object && object !== "null" && object !== "undefined" ){
    doSomething();
}
Run Code Online (Sandbox Code Playgroud)

objects我回来从服务调用或读取Cookie(因为不同的浏览器返回不同的值null,undefined,"null",或"undefined").

有没有更简单/更有效的方法来进行此检查?

aqu*_*nas 33

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

function isRealValue(obj)
{
 return obj && obj !== 'null' && obj !== 'undefined';
}
Run Code Online (Sandbox Code Playgroud)

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

if (isRealValue(yourObject))
{
 doSomething();
}
Run Code Online (Sandbox Code Playgroud)


小智 9

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

$.isEmptyObject(null)
$.isEmptyObject(undefined)
var obj = {}
$.isEmptyObject(obj)
Run Code Online (Sandbox Code Playgroud)

所有这些调用都将返回true.希望能帮助到你

  • 不要用jQuery回答JavaScript问题.jQuery不与JavaScript向后兼容,它不断改变发布的内容,当你的浏览器已经可以处理*real*JavaScript时,你在这里或那里通过在客户端上转储70KB来节省1KB,并且与知道如何正确编程相比它具有可怕的性能. (8认同)

Sea*_*ley 5

if(!!object){
  doSomething();
}
Run Code Online (Sandbox Code Playgroud)