Js 語言中 變數提公升問題

2022-05-14 15:52:57 字數 578 閱讀 7639

變數提公升: 提公升變數的宣告。

函式宣告式: 像這種形式:

function

foo() {}; 會發生變數提公升。

函式表示式: var fn=function fn(){}; 不會發生變數提公升。

var a = 1; 會將 a 的宣告提公升

a = 1; 等價於 window.a = 1;

**解析:

function

test()

test();

上面**執行過程》

1.將var 的變數提公升宣告 ,提公升到當前的範圍內最高作用域中,

此時a的宣告被提公升到function的作用域中(如不var:函式內的 a 會放到window下 : window.a = 5)

2.賦值5 給a 3

.列印a 會出現5 4

.列印window.a 會出現undefined(為什麼列印出undefined,因為最開始時將var 的變數宣告提公升到了當前的function作用域中)

5.將 10

重新賦值給 a

6.列印a 結果 10

js變數提公升

在了解變數提公升之前,應該先了解一下js到底是一種什麼型別的語言,他的執行機制又是怎樣的.console.log global undefined var global global console.log global global function fn fn 可以看出來 變數提公升只是將變數提...

js變數提公升

var a 100 functionf console.log a f undefined 200var a 100 functionf f console.log a 100如果你習慣了強型別語言的程式設計方式,那麼看到上述輸出結果你肯定會大吃一驚。我們來看一下c 的乙個例子 include us...

JS變數提公升

在當前作用域中,js 自上而下執行之前,瀏覽器首先會把所有的帶var function關鍵字的進行提前宣告 定義。注意宣告和定義的區別 宣告 declare var num 在當前作用域中吼一嗓子我有num這個名字了。定義 define num 12 把宣告的名字賦值。console.log a u...