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

大佬们遇到过这个问题吗?while 语句中的赋值表达式问题 while(firstChild = el.firstChild)各位有什么建议?

大佬们遇到过这个问题吗?while 语句中的赋值表达式问题 while(firstChild = el.firstChild)各位有什么建议?

蝴蝶不菲 2019-10-16 09:35:10
最近看到这样一段代码:letfragment=document.createDocumentFragment();letfirstChild;while(firstChild=el.firstChild){fragment.appendChild(firstChild);}returnfragment;代码中如果把fragment.appendChild(firstChild)注释掉,则会进入死循环,如果在while语句中去打印el.firstChild,则发现每次循环都在递进DOM节点,直到最后为空。请问这是什么原理呢?有没有这方面的资料文章呢?
查看完整描述

3 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

fragment.appendChild()具有移动性相当于把el中节点移动过去
letfragment=document.createDocumentFragment();letfirstChild;while(firstChild=el.firstChild){fragment.appendChild(firstChild);}console.log(el.firstChild);//你打印一个这个就明白了returnfragment;
                            
查看完整回答
反对 回复 2019-10-16
  • 3 回答
  • 0 关注
  • 483 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号