如何用JavaScript实现倒计数?现有代码运行异常求原因及正确写法
代码错误原因
- 初始值设置错误:需求是从10开始倒序计数,但代码中给i的初始赋值为1,不符合计数起始要求
- 循环逻辑触发死循环:循环条件设置为
11 > i,同时每次循环后执行i--操作,i会从1开始逐步变成0、-1、-2……永远满足11>i的判断条件,循环永远不会终止,所以浏览器会一直处于加载状态,无法正常输出内容 - 变量声明不规范:代码中没有使用
let/var关键字声明i变量,会直接挂载到全局作用域,属于不规范的写法,容易引发变量污染问题
正确实现代码
<script type="text/javascript"> // 初始化计数起始值为10 let i = 10; // 只要i大于等于1就执行循环 while(i >= 1) { document.writeln("<p>" + i + "</p>"); // 每次循环后计数减1 i--; } </script>
实现逻辑说明
- 初始值设为10,匹配从10开始计数的需求
- 循环条件设置为
i >= 1,当i递减到0时自动终止循环,不会出现死循环问题 - 每次打印完成后执行i减1的操作,逐步逼近循环终止条件,最终会正常输出10到1的所有数字
内容的提问来源于stack exchange,提问作者Jake T
相关产品推荐
相关产品推荐

