javascript - 看Vue源码感觉看到了while(i--),感觉像死循环,求解~
本文介绍了javascript - 看Vue源码感觉看到了while(i--),感觉像死循环,求解~的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
在看Vue的源码,看到以下这段代码的while
循环怎么看都是死循环,但是感觉源码不应该会有死循环啊,求指点~
function callUpdatedHooks (queue) {
let i = queue.length
// 这不是死循环吗
while (i--) {
const watcher = queue[i]
const vm = watcher.vm
if (vm._watcher === watcher && vm._isMounted) {
callHook(vm, 'updated')
}
}
}
解决方案
首先,你要理解while循环:
while循环(英语:while loop)是一种控制流程的陈述。利用一个返回结果为布林值(Boolean)的表达式作为循> 环条件,当这个表达式的返回值为真(true)时,则反复执行循环体内的程式码;若表达式的返回值为假(false),则不再执行循环体内的代码,继续执行循环体下面的代码。
其次, while (i--)
,你要理解i--
即i=i-1
,当i=0
时, while (0)
在js中就是while (false)
,循环就停止了。
这篇关于javascript - 看Vue源码感觉看到了while(i--),感觉像死循环,求解~的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文