我正在阅读JavaScript:The Complete Reference,Third Edition:Thomas Powell; Fritz Schneider对这些概念有了详细的了解.
范围规则
在函数或对象之外,无论是否使用var明确定义,变量都在全局空间内.在函数或对象中,如果使用var语句,则定义的变量将是构造的本地变量; 没有声明,它将是全球性的.
通常,JavaScript开发人员对使用var的范围规则进行假设并不完全正确.例如,在for循环中找到的var语句不会将该值范围限定为循环.在这种情况下,如果它位于函数或对象之外,则它的范围是它所在的函数或全局空间.
只是为了看看会发生什么,我这样编码,

当我在Eclipse IDE中按Ctrl+ Space来显示JavaScript提议时,为什么我能够访问函数外的变量jLocal?
根据作者描述:
例如,在for循环中找到的var语句不会将该值范围限定为循环.在这种情况下,如果它位于函数或对象之外,则它的范围是它所在的函数或全局空间.
因为在代码的底部你有:
...
jLocal = jLocal + j; // defined not in any functions
...
Run Code Online (Sandbox Code Playgroud)
使其全球化,但不必定义.
| 归档时间: |
|
| 查看次数: |
661 次 |
| 最近记录: |