while 语句中的赋值表达式问题 while(child = el.firstChild)

遇到一段很奇怪的代码,分享一下

const fragment = document.createDocumentFragment();
let child;
while((child = el.firstChild)){  // 1fragment.appendChild(child)  // 2
}
return fragment

while里面到底是如何运行的呢?
在第一行的括号里面进行了两次操作:
第一次就是赋值: child = el.firstChild;
第二次就是判断child是否为空,即while(child)

在第二行中,
fragment就把el.firstChildel.children[0])抽离了出来,这个操作是move domel.children[0]被抽出,在下次while循环执行firstChild = el.firstChild时读取的是相对本次循环的el.children[1]以此达到循环转移dom的目的


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部