前言:
在本栏中,我将每天更新一些JavaScript基础练习题。这些习题,大部分是我自己总结的。其中很大一部分是我在学习过程中记下的笔记或者遇到的坑,还有就是很重要很重要的基础概念,被我转换为了习题的形式。这部分题目,我觉得非常适合刚入门前端开发的朋友们,希望大家有所收获,这就足够咯~~
第四天
正文:
仔细阅读以下代码段,回答下列问题:(并非原创)
for (var i = 0; i < 5; i++) {
setTimeout(function() { console.log(i); }, 1000);
}
console.log(i);
- 该代码段的运行结果是什么?
- 若用箭头(=>)表示其前后的两次输出之间有 1 秒的时间间隔,而逗号(,)表示其前后的两次输出之间的时间间隔可以忽略,那么代码实际运行的结果该如何描述?
- 如果期望代码的输出变成:5 => 0,1,2,3,4,该怎么改造代码?给出你的解决方案
- 如果期望代码的输出变成 0 => 1 => 2 => 3 => 4 => 5,并且要求原有的代码块中的循环和两处 console.log 不变,该怎么改造代码?给出你的解决方案
- setTimeout定时是否准确?为什么?
- 简单谈谈你对闭包的理解?
说明:
- 题目中出现的JS指的是采用ECMAScript 2015及之后标准的JavaScript
- 欲查看word版习题和答案,请访问:https://download.csdn.net/download/qq_30216191/10630107。
- 题目和答案中,若有错误和需完善的地方,请及时给予我反馈哈~~