js作用域的形成與分類

2021-10-01 07:41:14 字數 883 閱讀 3454

因為變數需要執行環境,這個環境叫做作用域

1.全域性作用域在瀏覽器或者程式剛開始執行時產生

2.全域性作用域銷毀:在關閉瀏覽器或者關閉程式時

a:我們宣告的全域性變數都是window物件下的屬性

b:js物件中最大物件是window,所有的資料都在window下活躍

c:全域性作用域最大物件就是window,每次改變變數的值都是給window屬性重新賦值。window屬性為宣告的變數或者定義的函式名字

--window物件下

--最大的作用域

--其他的作用域都必須在全域性作用域下

--因為函式體中有宣告的變數,函式在執行時,該變數執行需要乙個環境,產生區域性作用域

--當函式執行完畢時,看子作用域中是否有需要使用它宣告的變數,如果沒有則作用域銷毀,變數消失(實際變數賦值為null),如果用到了就形成閉包,作用域儲存下來

--函式的執行環境在棧記憶體中,每次執行開闢乙個空間,執行完畢消失

--在函式區域性作用域中最大物件叫ao物件,ao會隨著作用域的存在而存在

--所以每個作用域中都會有乙個最大的物件,區域性作用域為ao物件,全域性為go

--每個物件中都隱藏this,預設指向物件(抽象物件)

1 let宣告的變數 {} 是乙個**塊,let只能在自己的{}內部執行,外部不能訪問,所以是塊級作用域,只看{}不看函式

2 塊級作用域也遵循作用域練規則,小作用域可以使用大作用域中的變數

3 for迴圈中 let 千萬注意:--- 不是乙個塊級域

舉例:for(let i=0;i<3;i++),1000)

}for(var i=0;i<3;i++),1000)

}

作用域分類

1.全域性作用域 window物件下 是最大的作用域 其他的作用域都必須在全域性作用域下 2.區域性作用域 因為函式體內有宣告變數,函式在執行時候 改變量執行需要乙個環境 所有就產生了區域性作用域 當函式執行完畢時,看子作用域中是否有需要使用的變數 如果沒有則作用域銷毀 變數消失 實際是變數賦值為n...

js高階 作用域與作用域鏈

理解 就是一塊地段,乙個 段所在的區域。它是靜態的 相對於上下文物件 在編寫 時就確定了。分類 全域性作用域 函式作用域 塊作用域 es6 作用 隔離變數,不同作用域下的同名變數不會有衝突。var a 10,b 20 function fn x bar 100 bar 200 fn 10 結果 區別...

js中的作用域和作用域

作用域是在執行時 中的某些特定部分中變數,函式和物件的可訪問性 簡單的說就好似變數能起到作用的範圍 區域性作用域 也可以叫做函式作用域 一般只在固定的 片段內可訪問到,最常見的例如函式內部 如下 在我們在函式中用var關鍵字宣告乙個 變數 a 在函式外輸出a的值 function scope con...