<h2>global scope</h2>
(1)最外層函數(shù)和在最外層函數(shù)外面定義的變量擁有全局作用域
B0389D51-CDA9-4CEC-8A67-FB3E223B7C4D.png
(2)所有末定義直接賦值的變量自動(dòng)聲明為擁有全局作用域;
function do(){
var author="lyf";
name="yx";
alert(author);
}
alert(author)
B20BD8B3-1AA7-4FC7-B3AD-011445844972.png
(3)所有window對(duì)象的屬性擁有全局作用域
一般情況下,window對(duì)象的內(nèi)置屬性都擁有全局作用域秧饮,例如window.name祈秕、window.location宙刘、window.top等等构眯。
<h2>local scope</h2>
全局作用域相反,局部作用域一般只在固定的代碼片段內(nèi)可訪問(wèn)到蛀缝,最常見(jiàn)的例如函數(shù)內(nèi)部萤厅,所有在一些地方也會(huì)看到有人把這種作用域稱為函數(shù)作用域
function do(){var do=1;};alert(do)//error
<h2>scope chain</h2>
一個(gè)很簡(jiǎn)單的例子
function add(num1,num2){
var sum=num1+num2;
return sum;
}
該內(nèi)部屬性包含了函數(shù)被創(chuàng)建的作用域中對(duì)象的集合,這個(gè)集合被稱為函數(shù)的作用域鏈蜜笤,它決定了哪些數(shù)據(jù)能被函數(shù)訪問(wèn)濒蒋。