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

来源:4-2 如何判断节点是元素节点

superli18

2015-11-15 21:45

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

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

写回答 关注

1回答

  • 李晓健
    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 就会报错

    superl...

    非常感谢!

    2015-11-17 21:34:39

    共 1 条回复 >

DOM探索之基础详解篇

要知道前端大牛都是从精通DOM开始的,全面讲解DOM的基础知识

98374 学习 · 238 问题

查看课程

相似问题