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

while(x && x.nodeType !== 1)中的X不是节点吗?它的nodeType可以等于1,但是X为什么也可以直接等有意1呢?

while(x  && x.nodeType !== 1){

    x = x.previousSibling;

}

//就是while循环里的判断条件里的 X !== 1怎么理解呢?

正在回答

5 回答

应该是该结点是否存在的意识,1可以表示为true

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

应该是1&&1的意思  本例该判断结果为真,所以执行while中语句。牵扯到运算优先级

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

但while(x!=null)等同while(x)

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

我尝试while(x!=1&&x.nodeTpye!=1)结果也对啊?

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

最佳回答有些许问题,并不是1可以表示true,while(x && x.nodeType != 1)不是指需要同时满足x != 1与 x.nodeType != 1两个条件,而是while(x)已经判断该节点是否存在,while(x)等同while(x != null).这样才是对的,你可以尝试将while(x  && x.nodeType != 1)改成while(x != 1 && x.nodeType != 1),结果却是错的。

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

举报

0/150
提交
取消

while(x && x.nodeType !== 1)中的X不是节点吗?它的nodeType可以等于1,但是X为什么也可以直接等有意1呢?

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