作用域鏈(1 1 2)

2021-08-07 12:09:52 字數 583 閱讀 8140

如何區分私有變數和全域性變數:

例題1:

console.log(total); //undefined

var total = 0;

function fn(num1,num2)

fn(100,200);

console.log(total); //0

當函式執行的時候,(直接目的:讓函式體中的**執行),首先會形成乙個新的私有的作用域,然後按照如下的步驟執行:

函式形成乙個新的私有作用域保護了裡面的私有變數不受外界的干擾(外面修改不了私有的,反之亦然) -> 閉包。

例題2:

console.log(total); //undefined

var total = 0;

function fn(num1,num2)

fn(100,200);

console.log(total); //300

作用域 作用域鏈

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

作用域和作用域鏈

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

作用域和作用域鏈

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