JavaScript函数作用域与作用域链

什么是作用域?

  • 作用域是可访问变量的集合。
什么是函数作用域?

函数内声明的所有变量在函数体内始终是可见的,而在函数外部不能访问

        function getSome() {
            var num = 1;
            return num;
        };
        console.log(getSome()); //1
        console.log(num); //num is not defined

什么是作用域链?它的作用和特点是什么?

JavaScript里一切都是对象。函数也是对象,,拥有可以通过代码访问的属性和一系列仅供JavaScript引擎访问的内部属性。其中一个内部属性是[[Scope]],该内部属性包含了函数被创建的作用域中对象的集合.
作用 : 保证对执行环境有权访问所有变量和函数的有序访问,它的下一个变量对象来自外部环境,而下一个变量对象则来自于下一个包含环境,直到全局执行环境


特点 :作用域链只能支持向上搜索,而不支持向下搜索,就是当前执行环境中可以访问其包含环境中的变量和函数,而不可以访问其被包含环境中的变量和函数.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容