关于JS Scope 的一个误解

最近一个很久没写Ruby的Ruby Engineer。偶尔也是拉起来就能写JS,无论是Node,还是 React Vue 还是Electron,多少都有些经验。可最让人郁闷的是,看到了别人列举出来的面试题目却是一窍不通。比如这里的题目。

言归正传,说来羞愧,一直以为JS所谓的scope只有function才有,而那些block是不存在scope的,所以用var 申明的变量可以在block之外也被引用到。

其实,JS中Block也是有scope的, 使用let和const定义的变量就会和block scope绑定在一起。

所以,说到底,scope存在不存在是一回事情,变量和scope的绑定规则又是另一回事罢了。

哎,快要称为没有大量实战经验的废物。

如果你觉得本文对你有帮助,请给我点赞助。