javascript - 看Vue源码感觉看到了while(i--),感觉像死循环,求解~

查看:419
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆