函式宣告總會被提公升到函式體的最頂部。但是對於不同的函式宣告方法,提公升的東西不一樣。對於關鍵字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會在下面畫一條小綠線,表示...