为何后缀自增的while循环会alert出5?前缀与后缀自增差异解析
为什么后缀自增的while循环会输出5?
核心区别在于前缀自增(++i)和后缀自增(i++)的执行顺序:
前缀自增代码分析
let i = 0; while (++i < 5) { alert(i); }
执行流程:
- 每次进入循环判断前,先把
i加1,再用新的i值和5比较 - 当
i被加到5时,5 < 5不成立,循环直接终止,不会进入alert语句 - 最终输出:1、2、3、4
后缀自增代码分析
let i = 0; while (i++ < 5) { alert(i); }
执行流程:
- 每次进入循环判断时,先使用
i的当前值和5比较,比较完成后再把i加1 - 当
i等于4时,先判断4 < 5成立,然后i被加1变成5,接着进入循环执行alert(5) - 下一次循环判断时,用
i的当前值5比较5 < 5,不成立,循环终止 - 最终输出:1、2、3、4、5
简单来说:后缀自增的判断和变量自增是两步操作,判断通过后变量才会完成自增,此时进入循环体时,i已经是自增后的值。最后一次判断4<5通过后,i变成5,自然会被alert输出。
内容的提问来源于stack exchange,提问作者BM101
相关产品推荐
相关产品推荐

