大部分语言(例如C语言)都用有块级作用域.在一个代码块中(括在一对花括号中的词句集)定义的所有变量在代码的外部是不可见的.定义在代码块中的变量在代码块执行结束后会被释放掉.
糟糕的是,尽管代码块的语法似乎表现出它支持块级作用域,但实际上javaScript并不支持.
javaScript确实有函数作用域.那意味着定义在函数中的参数和变量在函数外部是不可见的,而且在一个函数中任何位置定义的变量在该函数中的任何地方都可见.
确切的说:js只有函数作用域,已经catch语句中是块级作用域,其余的for,if,switch全部不是块级作用域.
块作用域
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 在 ES5 及之前版本,JavaScript 只拥有函数作用域,没有块作用域(with 和 try...catch...
- Javascript 的 1.7 版本加入了 let 关键字(该新特性属于 ECMAScript 2015(ES6...