徹底弄明白JS中的函式提公升

2021-08-14 20:38:09 字數 1222 閱讀 4624

函式宣告總會被提公升到函式體的最頂部。但是對於不同的函式宣告方法,提公升的東西不一樣。對於關鍵字function申明的函式,會將整個函式體提公升到作用域的頂部,而通過表示式宣告的函式,只會先將變數提公升,而賦值不會提公升。

function

foo()

return bar();

function

bar()

}console.log(foo());//8

function

foo()

//redefined bar function

function

bar()

return bar();

}console.log(foo());//8

function

foo()

return bar();

var bar=function

() }

console.log(foo());//3

function

foo()

return bar();

//沒有執行第二個

}

console.log(foo()); //3

function

foo()

return bar();

var bar=function

() }

function

foo()

return bar();

var bar=function

() }

console.log(foo()); //3

function

foo()

var bar=function

() }

console.log(foo()); //error bar is not a function

function

foo()

bar=function

() }

console.log(foo()); //error bar is not a function

js中的變數提公升和函式提公升

一,變數提公升 顧名思義,變數提公升就是函式在執行時,會把在下面的變數提公升到函式的top位置,來看栗子 var scope hello function t t 此時輸出的結果是 第乙個輸出undefined 根據作用域鏈,函式內部訪問乙個變數時,會首先在作用域鏈的前端也就是函式內部尋找變數,找到...

js中的變數提公升和函式提公升

從上週開始,我所在的學習小組正式開始了angular的學習,angular是全面支援es6的,所以語法上和以前的angular有了很大的不同,比如變數宣告時就拋棄了var,而選擇了let和const 記得剛開始學習js的時候,使用webstrom時用var,webstrom會在下面畫一條小綠線,表示...

js中的變數提公升和函式提公升

從上週開始,我所在的學習小組正式開始了angular的學習,angular是全面支援es6的,所以語法上和以前的angular有了很大的不同,比如變數宣告時就拋棄了var,而選擇了let和const 記得剛開始學習js的時候,使用webstrom時用var,webstrom會在下面畫一條小綠線,表示...