函式的變數宣告提公升

2021-10-04 02:55:08 字數 531 閱讀 2914

變數存在的範圍就是變數的作用域。

全域性作用域

變數在程式中一直存在,所有地方都可以讀取。

區域性作用域

變數只在函式內部存在

函式外部宣告變數就是全域性變數

函式內部定義的變數外部無法讀取,顧稱 區域性變數

使用規則:

函式允許訪問函式外的變數

整個**結構中只有函式可以限定作用域

作用域規則首先使用提公升規則分析

如果當前作用域中有了該變數,就不再考慮外面的同名變數

函式內部會產生 「 變數提公升 」 現象,在函式內部使用 var 命令宣告的變數,不管在什麼位置,變數宣告都會被提公升到函式體的頭部。

下面乙個小例子:

//提公升前的**

function

foo(x)

}//提公升後的**

function

foo(x)

}

變數宣告提公升 Vs 函式宣告提公升

先看以下 1 var in window a in window console.log in window 2 var in window a in window console.log in window if a in window 3 var a var in window a in win...

JS變數宣告和函式宣告提公升

很多時候,在直覺上,我們都會認為js 在執行時都是自上而下一行一行執行的,但是實際上,有一種情況會導致這個假設是錯誤的。a 2 var a console.log a 按照傳統眼光,console.log a 輸出的應該是undefined,因為var a在a 2之後。但是,輸出的是2。再看第二段 ...

JS變數提公升,函式宣告提公升及變數作用域的理解

在一般情況下,js 都是自上而下執行的,對於同乙個變數,可以通過如下方式來修改 var a 1 a 2 console.log a 2 a function console.log a function console.log a var a 1 console.log b var b functi...