JavaScript 存在块级作用域吗?

2014 年 2 月 27 日
 Guzi
5178 次点击
所在节点    JavaScript
12 条回复
sezina
2014 年 2 月 27 日
没有。一个函数内的所有变量的声明都会被提前到前面。
jsonline
2014 年 2 月 27 日
不存在不存在不存在
Blueshit
2014 年 2 月 27 日
try
{...}
catch(e)
{...}
这个 e 只作用于 catch 语句块
serenader
2014 年 2 月 27 日
没有。

Unlike most programming languages, JavaScript does not have block-level scope (variables scoped to surrounding curly brackets); instead, JavaScript has function-level scope. Variables declared within a function are local variables and are only accessible within that function or by functions inside that function.
摘自 http://javascriptissexy.com/javascript-variable-scope-and-hoisting-explained/
normanzb
2014 年 2 月 27 日
有,新的ES里有: let

for(let i = 0 ; i < xxx; i++) { ... }
muzuiget
2014 年 2 月 27 日
有,ES6 标准里才有,现在只有 Firefox 支持。
muzuiget
2014 年 2 月 27 日
zhulinpinyu
2014 年 2 月 28 日
目前只有函数级作用域,没有块级作用域。
hussion
2014 年 2 月 28 日
ES6以前木有,但是可以通过闭包实现块级作用域;ES6可以用let实现块级作用域
xuyifei
2014 年 3 月 1 日
块级作用域确实是js的一个坑
nil
2014 年 3 月 1 日
多用函数,js里面函数能给你其他主流语言提供的一切功能~
g0thic
2014 年 3 月 24 日
没有块级作用域,不过可以模仿块级作用域

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/102184

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX