问答详情
源自:4-2 如何判断节点是元素节点

小白求助if(obj&&obj.nodeType === 1)!!!

if(obj&&obj.nodeType === 1)

刚才那里不是要判断它的类型是否为元素节点,为什么要多一段obj&&?直接判断obj.nodeType === 1  不行吗?而且obj为什么也要判断===1?

提问者:superli18 2015-11-15 21:45

个回答

  • 李晓健
    2015-11-15 21:53:22
    已采纳

    因为 && 是短路运算符  

    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 就会报错