以下为ChatGPT自动生成的解答,正确与否请自行判断。

BFE.devAI解答 - JavaScript 小测验
5. scope

输出结果如下:

5 5 5 5 5
0 1 2 3 4

原因在于第一个for循环中使用的是var关键字声明变量i,因此在执行setTimeout回调函数时,i指向的是最后一个值,即5。而第二个for循环中使用的是let关键字声明变量i,会在每次循环中新建一个块级作用域,因此每个setTimeout回调函数引用的都是不同的i,以其当前的值输出。