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

函数里面(n),还有x && x.nodeType!=1怎么理解,求大神指点啊。。

function get_nextSibling(n){
        var x=n.nextSibling;
        while (x && x.nodeType!=1){
            x=x.nextSibling;
        }
        return x;
    

正在回答

6 回答

按顺序先判断x存不存在,不存在也就不执行&&后面的判断了,提升性能

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

编译器要先找到一个对象才能继续访问那个对象的属性,如果那个对象都不存在,那么再访问那个对象的属性就是错误的。

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

如果x为null,那么就没有x.nodeType,这样写就是错误的。指针越界

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

n是在调用这个函数的时候指定的节点,比如在调用的时候写get_nextSibling(x)就表示取x的兄弟节点,get_nextSibling(y)就表示取y的兄弟节点

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

我也纳闷 ,

x.nodeType!=1不就够了吗,为什么要x && x.nodeType!=1呢

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

对啊我是太阳啊

我的理解是:如果x不存在的话,x.nodeType!=1也是满足的,但是再去取他的下一个兄弟节点就没有意义了
2019-03-01 回复 有任何疑惑可以回复我~
#2

LouisDuan 回复 对啊我是太阳啊

那为啥例子里的while里它没写?他那么写是错的吗
2019-03-24 回复 有任何疑惑可以回复我~

......如果你这都看不懂,你就去学入门的吧,这很基础

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

日幕 提问者

什么入门,在哪
2019-02-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

函数里面(n),还有x && x.nodeType!=1怎么理解,求大神指点啊。。

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