机试结果0 1 2 2
答案里只有15 1 2 2
根本不知道这个15怎么来的
涉及的考点也不明确:作用域?Settimeout的异步?
请详细解答,感谢。
正确的应该是0 1 2 2
第一个for循环里面的i是let定义的 js会开辟一个单独的内存空间储存 所以各个i互不干扰 依次输出就是0 1 第二个循环里的i是var定义的 存在变量提升的问题 第一遍i=0 将后面的执行语句放进异步队列 第二遍循环i=1 将后面的执行语句放进异步队列 第三遍i=2 不满足条件 不执行后面的方法 结束循环是i=2 所以会输出 2 2 连起来就是0 1 2 2
就是天王老子来了,他也不可能输出比2大的值