var a = 1;
function b()
}b();
console.log(a); //輸出結果為1
進行變數提公升之後的**
var a;
function b()
a = 10;
return;
}a = 1;
b();
console.log(a);
在函式b中先通過function關鍵字宣告了乙個a函式,相當於 var a = function () ,這個a儲存在b函式的作用域中,再執行a=10時將函式作用域中的a轉換成了number型別,但是這個a變數儲存在b這個函式作用域當中,不會改變全域性作用域中a的值,所以最後的輸出結果為1;
下圖表明在b函式的執行過程中,全域性作用域中的a變數沒有發生改變
JS 變數提公升與函式提公升
在 es6 出來之前,沒有塊級作用域,只有全域性作用域 和 函式作用域。變數提公升指的是 將變數宣告提公升到它所在作用域的最開始部分。例子 console.log foo undefined var foo 變數提公升 console.log foo 變數提公升 相當於 var foo consol...
js 變數 函式提公升
js 變數 函式提公升 先簡單理解下作用域的概念,方便對變數與函式提公升的概念的理解 function foo console.log x foo 2結果為2,可見js中並沒有塊級作用域的概念 可以使用下面的方法創造自己的作用域,這樣不會干擾到外部變數 function foo console.lo...
關於JS變數重名
var a hellow function test test 如上面一段 執行結果為 undefined 1 咋一看略顯奇怪 為什麼第一次alert的不是 hellow 這是因為js中對變數宣告 和 變數賦值 的區別 在js指令碼執行之前,會先將已宣告的函式進行解析 解析過程中用var宣告的變數就...