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

来源:9-11 访问兄弟节点

半空之境

2019-07-23 19:44

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

    x = x.previousSibling;

}

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

写回答 关注

5回答

  • qq_蚀_1
    2019-07-24 09:27:31
    已采纳

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

  • Kirito1802294
    2020-07-05 13:26:02

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

  • qq_慕设计1278587
    2019-08-26 14:28:43

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

  • qq_慕设计1278587
    2019-08-26 14:21:46

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

  • 阿猪er
    2019-07-30 16:49:34

    最佳回答有些许问题,并不是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),结果却是错的。

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题