为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

正在回答

1 回答

因为 && 是短路运算符  

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

0 回复 有任何疑惑可以回复我~
#1

superli18 提问者

非常感谢!
2015-11-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信