JS之函式(二)
函式講解二
1、JS三部曲
語義分析、預編譯、解釋執行
2、預編譯詳解
重點:函式宣告整體提升
變數 宣告提升
例子:
test12();
function test11(){
console.log("你好");
}
function test12(){
console.log("你好2");
}
雖說在JS中是屬於順序執行語句,但對於函式的宣告和呼叫,如果呼叫放置在函式之前或者之後,JS在預編譯時,根據函式宣告整體提升會將定義的函式放置在JS片段的最前面,即:
<script type="text/javascript"> function test11(){ console.log("你好"); } function test12(){ console.log("你好2"); } test12(); </script>
如果是變數,例如:
<script type='text/javascript'>
console.log(a);
var a = 123;//這語句屬於變數宣告賦值
</script>
結果將顯示:undefined
實質的執行過程為【變數 宣告提升】:
<script type='text/javascript'>
var a;
console.log(a);
a = 123;
</scipt>
但是如果為此種情況
<script type='text/javascript'>
console.log(a);
</script>
則屬於程式錯誤