js中變數提公升

2021-07-24 13:47:07 字數 536 閱讀 3625

js初學者,如果之前接觸的有其他程式語言的經驗,往往容易被js**的執行結果,感覺到莫名其妙,其實很多時候,不太了解,其中的變數提公升的原理。

如下**所示:

console.log(a);//輸出函式體

var a = 15;

function a()

console.log(a);//15

如果沒有接觸過js,肯定想不明白是怎麼回事,其實在js執行過程中,有個過程問題。先把變數的宣告提公升到作用域的最上面,然後提公升宣告型別函式(此處區別與另外一種函式的定義,函式表示式,如 var fn=function(){};),所以呢,上面的語句就改寫為:

var a;

function a()

console.log(a);

a=15;

console.log(a);

上面定義了兩個變數a ,這裡把function a .....同樣當做變數啊的宣告,那麼下面宣告的a,就覆蓋了上面宣告的a ,顯而易見,就得出了上面的結果。

js 中的變數提公升

我們知道當區域性變數和全域性變數同名時,區域性變數會覆蓋全域性變數。但我們看一段js var scope 全域性變數 functionf f 全域性變數 在全域性範圍 不再函式內 定義的變數 不管是否使用var 不使用var定義的變數都是全域性變數 js中沒有塊範圍指的是 在函式內無論在js中 定義...

js中的變數提公升

我們在宣告變數的時候,會把變數的宣告提到當前作用域的最上方,賦值還是在 原來的位置賦值。console.log x undefined var x 10 console.log x 10上面的 相當於是 var x console.log x x 10 console.log x 把x的宣告提公升到...

js變數提公升

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