作用域和作用域链

<h2>global scope</h2>
(1)最外层函数和在最外层函数外面定义的变量拥有全局作用域


B0389D51-CDA9-4CEC-8A67-FB3E223B7C4D.png

(2)所有末定义直接赋值的变量自动声明为拥有全局作用域;

function do(){
var author="lyf";
      name="yx";
    alert(author);
}
alert(author)
B20BD8B3-1AA7-4FC7-B3AD-011445844972.png

(3)所有window对象的属性拥有全局作用域
  一般情况下,window对象的内置属性都拥有全局作用域,例如window.name、window.location、window.top等等。
<h2>local scope</h2>
全局作用域相反,局部作用域一般只在固定的代码片段内可访问到,最常见的例如函数内部,所有在一些地方也会看到有人把这种作用域称为函数作用域

function do(){var do=1;};alert(do)//error

<h2>scope chain</h2>

一个很简单的例子
function add(num1,num2){
      var sum=num1+num2;
return sum;
}

该内部属性包含了函数被创建的作用域中对象的集合,这个集合被称为函数的作用域链,它决定了哪些数据能被函数访问。

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

相关阅读更多精彩内容

友情链接更多精彩内容