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

 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 这样交换下位置这个判断句子就不行了 求大神指点迷津!

qq_高贵猪八戒_5
浏览 1412回答 1
1回答

Perona

首先了解一下,操作符之间的优先级(高到低):算术操作符 → 比较操作符 → 逻辑操作符 → "="赋值符号x&&x.nodeType!=1 最后执行的是逻辑操作符&&(与)。而不是比较操作符!=(不等于)。这行代码不止判断是否存在x并且判断x节点类型不等于元素节点。如果节点是元素节点,则 nodeType 属性将返回 1。x.nodeType!=1就是判断节点不是元素节点。所以x&&x.nodeType!=1要交换位置,代码应该是:x.nodeType!=1&&x
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript