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

交换下运算符前后的位置x.nodeType&&x!=1迷茫

交换下运算符前后的位置x.nodeType&&x!=1迷茫

qq_高贵猪八戒_5 2015-05-18 21:02:17
 function get_nextSibling(n){        var x=n.nextSibling;        while (x.nodeType&&x!=1){            x=x.nextSibling;        }        return x;    }这个句子中x&&x.nodeType!=1是判断节点是否为空 但是把句子中x.nodeType&&x!=1 这样交换下位置这个判断句子就不行了 求大神指点迷津!
查看完整描述

1 回答

?
Perona

TA贡献355条经验 获得超403个赞

首先了解一下,

操作符之间的优先级(高到低):

算术操作符 → 比较操作符 → 逻辑操作符 → "="赋值符号

x&&x.nodeType!=1 最后执行的是逻辑操作符&&(与)。而不是比较操作符!=(不等于)。

这行代码不止判断是否存在x并且判断x节点类型不等于元素节点。

如果节点是元素节点,则 nodeType 属性将返回 1。

x.nodeType!=1就是判断节点不是元素节点。

所以x&&x.nodeType!=1要交换位置,代码应该是:

x.nodeType!=1&&x


查看完整回答
反对 回复 2015-05-18
  • 1 回答
  • 0 关注
  • 1411 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信