小白求助if(obj&&obj.nodeType === 1)?。。?/h1>
if(obj&&obj.nodeType === 1)
剛才那里不是要判斷它的類型是否為元素節(jié)點(diǎn),為什么要多一段obj&&?直接判斷obj.nodeType === 1? 不行嗎?而且obj為什么也要判斷===1?
if(obj&&obj.nodeType === 1)
剛才那里不是要判斷它的類型是否為元素節(jié)點(diǎn),為什么要多一段obj&&?直接判斷obj.nodeType === 1? 不行嗎?而且obj為什么也要判斷===1?
2015-11-15
因?yàn)?&& 是短路運(yùn)算符 ?
obj&&obj.nodeType === 1
的意思就是 obj 存在,并且?obj.nodeType === 1 if里的整個(gè)表達(dá)式才為true, 如果說 obj 不存在,他的值就是undefinde ,if(obj) ?就直接返回false了 ?不會(huì)再對(duì)后面的obj.nodeType === 1 進(jìn)行判斷了。如果不加obj&& ?直接寫成 if(obj.nodeType === 1) ?這時(shí)obj不存在的話就會(huì)報(bào)錯(cuò),undefinde 是不可以調(diào)用屬性的?obj.nodeType 就會(huì)報(bào)錯(cuò)