JavaScript 存在块级作用域吗?

2014-02-27 18:55:33 +08:00
 Guzi
4092 次点击
所在节点    JavaScript
12 条回复
sezina
2014-02-27 19:02:33 +08:00
没有。一个函数内的所有变量的声明都会被提前到前面。
jsonline
2014-02-27 19:15:51 +08:00
不存在不存在不存在
Blueshit
2014-02-27 19:16:46 +08:00
try
{...}
catch(e)
{...}
这个 e 只作用于 catch 语句块
serenader
2014-02-27 19:32:47 +08:00
没有。

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-02-27 20:04:08 +08:00
有,新的ES里有: let

for(let i = 0 ; i < xxx; i++) { ... }
muzuiget
2014-02-27 20:39:15 +08:00
有,ES6 标准里才有,现在只有 Firefox 支持。
muzuiget
2014-02-27 20:39:46 +08:00
zhulinpinyu
2014-02-28 14:08:26 +08:00
目前只有函数级作用域,没有块级作用域。
hussion
2014-02-28 16:07:48 +08:00
ES6以前木有,但是可以通过闭包实现块级作用域;ES6可以用let实现块级作用域
xuyifei
2014-03-01 15:11:27 +08:00
块级作用域确实是js的一个坑
nil
2014-03-01 17:00:55 +08:00
多用函数,js里面函数能给你其他主流语言提供的一切功能~
g0thic
2014-03-24 09:38:34 +08:00
没有块级作用域,不过可以模仿块级作用域

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

https://www.v2ex.com/t/102184

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

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

© 2021 V2EX