//BAD:Thiswillcauseanerrorincodewhenfooisundefined if(foo){ doSomething(); } //GOOD:Thisdoesn'tcauseanyerrors.However,evenwhen //fooissettoNULLorfalse,theconditionvalidatesastrue if(typeoffoo!="undefined"){ doSomething(); } //BETTER:Thisdoesn'tcauseanyerrorsandinaddition //valuesNULLorfalsewon'tvalidateastrue if(window.foo){ doSomething(); }
有的情况下,我们有更深的结构和需要更合适的检查的时候
//UGLY:wehavetoproofexistenceofevery //objectbeforewecanbesurepropertyactuallyexists if(window.oFoo&&oFoo.oBar&&oFoo.oBar.baz){ doSomething(); }
其实最好的检测一个属性是否存在的方法为:
if("opera"inwindow){ console.log("OPERA"); }else{ console.log("NOTOPERA"); }
12、检测对象是否为数组
varobj=[]; Object.prototype.toString.call(obj)=="[objectArray]";
以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。
您可能感兴趣的文章: