分析 HTTP 203 出的一个 JS 题目

HTTP 203 是 Youtube 上的一个栏目,讲一些有趣的知识。

最近他们讨论了一个 JS 题目,用以吐槽 JS 的 for 循环是多么复杂:

for(
  let i = (setTimeout(()=>console.log(i), 2333) , 0);
  i < 2;
  i++
){
 
}
 
// 问 2333 秒之后打印出什么

你先想几秒钟,再看答案,答案在下方

.

..

...

....

.....

......

.......

.......

........

..........

............

..............

.

..

...

....

.....

......

.......

.......

........

..........

............

..............

答案是 2333 毫秒后打印出 0。

提示:

  1. 逗号表达式不是考点,逗号表达式是基础知识
  2. 考点是 let 和 for 一起使用时,作用域相关的知识

分析如下(如果你听得懂原视频的英文,就不用看我的解析了):

题目分析(上)https://www.zhihu.com/video/1015208969392001024题目分析(下)https://www.zhihu.com/video/1015209036869844992

饥人谷一直致力于培养有灵魂的编程者,打造专业有爱的国内前端技术圈子。如造梦师一般帮助近千名不甘寂寞的追梦人把编程梦变为现实,他们以饥人谷为起点,足迹遍布包括facebook、阿里巴巴、百度、网易、京东、今日头条、大众美团、饿了么、ofo在内的国内外大小企业。 了解培训课程:加微信 xiedaimala03,官网:https://jirengu.com

本文作者:饥人谷方应杭老师