小白求助if(obj&&obj.nodeType === 1)!??!
if(obj&&obj.nodeType === 1)
剛才那里不是要判斷它的類型是否為元素節點,為什么要多一段obj&&?直接判斷obj.nodeType === 1? 不行嗎?而且obj為什么也要判斷===1?
if(obj&&obj.nodeType === 1)
剛才那里不是要判斷它的類型是否為元素節點,為什么要多一段obj&&?直接判斷obj.nodeType === 1? 不行嗎?而且obj為什么也要判斷===1?
2015-11-15
舉報
2015-11-15
因為 && 是短路運算符 ?
obj&&obj.nodeType === 1
的意思就是 obj 存在,并且?obj.nodeType === 1 if里的整個表達式才為true, 如果說 obj 不存在,他的值就是undefinde ,if(obj) ?就直接返回false了 ?不會再對后面的obj.nodeType === 1 進行判斷了。如果不加obj&& ?直接寫成 if(obj.nodeType === 1) ?這時obj不存在的話就會報錯,undefinde 是不可以調用屬性的?obj.nodeType 就會報錯