什么是作用域?
- 作用域是可访问变量的集合。
什么是函数作用域?
函数内声明的所有变量在函数体内始终是可见的,而在函数外部不能访问
function getSome() {
var num = 1;
return num;
};
console.log(getSome()); //1
console.log(num); //num is not defined
什么是作用域链?它的作用和特点是什么?
JavaScript里一切都是对象。函数也是对象,,拥有可以通过代码访问的属性和一系列仅供JavaScript引擎访问的内部属性。其中一个内部属性是[[Scope]],该内部属性包含了函数被创建的作用域中对象的集合.
作用 : 保证对执行环境有权访问所有变量和函数的有序访问,它的下一个变量对象来自外部环境,而下一个变量对象则来自于下一个包含环境,直到全局执行环境
特点 :作用域链只能支持向上搜索,而不支持向下搜索,就是当前执行环境中可以访问其包含环境中的变量和函数,而不可以访问其被包含环境中的变量和函数.