块范围的语言?

时间:2013-09-07 12:27:38

标签: javascript scope

我正在阅读有关功能范围与块范围的内容。并了解到Javascript具有功能范围。

现在,当我想到它时,我所知道的所有语言都具有功能范围。我真的不知道任何具有块范围的语言。你们能指点一些具有块范围的语言吗?

还有一个疑问,在具有块作用域的语言中,如何在循环块外部访问for循环的索引值?阻止范围有什么好处?

感谢。

2 个答案:

答案 0 :(得分:1)

ALGOL 60是第一个使用块范围,其次是许多像C, C++, C# ...等等

查看此维基百科页面的Block scope部分。

  

拥有阻止范围的优势

     

块主要用于控制流,例如if,while,   和for循环,在这些情况下,块范围意味着范围   变量取决于函数执行流程的结构。   但是,具有块范围的语言通常也允许使用   “裸”块,其唯一目的是允许细粒度控制   变量范围。例如,辅助变量可以在a中定义   块,然后使用(比如,添加到具有函数范围的变量)和   当块结束时丢弃,或者while循环可能被包含在a中   用于初始化循环内部仅使用的变量的块   初始化一次。

答案 1 :(得分:-3)

  

“在JavaScript块中没有范围。只有函数具有范围   除了复合语句的要求外,不要使用块。“

道格拉斯·克罗克福德说道。