(一)、作用域与作用域链

在javascript中,作用域是用来规定变量与函数可访问范围的一套规则。 

1. 1作用域:全局作用域、局部作用域

全局作用域中声明的变量与函数可以在代码的任何地方被访问。

什么情形才会拥有作用域?

(1)全局对象下拥有的属性和方法:window.name , window.location, window.top ......

(2)在最外层声明的变量与方法:即在全局上下文声明的变量和方法。

(3)在非严格模式下,函数作用域中未定义但直接赋值的变量和方法。即在函数中未使用关键字声明的变量。

1.2函数作用域

函数作用域中声明的变量和方法,只能被下层子作用域访问,而不能被其他不相干的作用域访问。

ES6之前,没有块级作用域。

1.3模拟块级作用域

var arr = [1,2,3,4,5,6]

(function() {

     for(var i = 0; i<arr.length; i++) {

        console.log(i)

     }

})()  即函数自执行。i 仅在函数中生效,或者在匿名函数前加+ 、- 、!,此三种方式不必用括号包裹函数。当我们使用ES5时,往往通过函数自执行的方式来实现模块化。

2.作用域链scope chain:

是当前执行环境与上层执行环境的一系列变量对象组成的,保证了当前执行环境对符合访问权限的变量和函数的有序访问。

var a = 20;

function test() {


}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容