019 作用域,作用鏈

2021-09-19 12:27:53 字數 1267 閱讀 3649

作用域: 使用範圍

全域性變數:宣告的變數是使用var宣告的,那麼這個變數就是全域性變數,全域性變數可以在頁面的任何位置使用

除了函式以外,其他的任何位置定義的變數都是全域性變數

區域性變數:在函式內部定義的變數,是區域性變數,外面不能使用

全域性變數,如果頁面不關閉,那麼就不會釋放,就會佔空間,消耗記憶體

隱式全域性變數:宣告的變數沒有var,就叫隱式全域性變數

全域性變數是不能被刪除的,隱式全域性變數是可以被刪除的

定義變數使用var是不會被刪除的,沒有var是可以刪除的

全域性作用域:全域性變數的使用範圍

區域性作用域:區域性變數的使用範圍

塊級作用域:一對大括號就可以看成是一塊,在這塊區域中定義的變數,只能在這個區域中使用,但是在js中在這個塊級作用域中定義的變數,外面也能使用;

說明:js沒有塊級作用域,只有函式除外

隱式全域性變數:

functionf1(

)f1()

; console.

log(number)

;

隱式全域性變數能被刪除,全域性變數無法刪除:

var num1=10;

num2=20;

delete num1;

//把num1刪除了 全域性變數無法刪除

delete num2;

//把num2刪除了 隱式全域性變數能被刪除

console.

log(

typeof num1)

;//number

console.

log(num1+10)

;//20

console.

log(

typeof num2)

;//undefined

全域性變數在函式內部可以訪問:

var i=0;

while

(i<5)

console.

log(num)

;

區域性變數在函式外部無法訪問:

functionf1(

)f1()

; console.

log(num)

;

作用域 作用域鏈

理解 就是一塊 地盤 乙個 段所在的區域 它是靜態的 相對於上下文物件 在編寫 時就確定了 分類全域性作用域 函式作用域 沒有塊作用域 es6有了 作用隔離變數,不同作用域下同名變數不會有衝突 區別1全域性作用域之外,每個函式都會建立自己的作用域,作用域在函式定義時就已經確定了。而不是在函式呼叫時 ...

作用域和作用域鏈

全域性作用域 全域性的變數執行環境 函式作用域 函式內部的變數執行環境 每個函式都有自己的執行環境,當執行流進入乙個函式時,函式的環境就會被推入乙個環境棧中。函式執行之後,棧將環境彈出,把控制權返回給之前的執行環境。全域性作用域只要頁面不解除安裝,就一直存在,不釋放。函式每次在呼叫時,都會形成乙個作...

作用域和作用域鏈

var a 10 function f1 x,y f1 console.log b 此時b輸出5,因為b 5為隱式的全域性變數 在函式外面使用var 宣告的變數都是全域性變數,作用範圍是程式執行的地方.全域性作用域 函式除外 函式的形參是區域性變數 在函式內部,不使用var 定義的變數,叫隱式全域性...