函式宣告和函式表示式的區別
阿新 • • 發佈:2022-05-06
一、寫法不一樣
1 //函式宣告 2 let res1 = sum1(10 , 20) 3 console.log(res1) 4 function sum1(num1, num2) { 5 return num1 + num2 6 } 7 8 //函式表示式 9 let res2 = sum2(10 , 20) 10 console.log(res2) 11 let sum2 = function ( num1, num2 ){ 12 return num1 + num2 13 }
二、函式宣告可以把函式預載入,而表示式不會
以函式宣告的方法定義的函式,函式可以在函式宣告之前呼叫,而函式表示式的函式只能在宣告之後呼叫。
三、分析瀏覽器如何執行程式碼
第一步:分析函式宣告
在分析網頁期間(執行任何程式碼之前),瀏覽器查詢函式宣告。找到函式宣告時,瀏覽器建立相應的函式,並將得到的函式引用賦給與函式同名的變數。
第二步:瀏覽器執行程式碼
處理所有的函式聲明後,瀏覽器回到程式碼開頭,開始按從頭到尾的順序執行程式碼。
第三步:繼續執行
處理完變數fly後,瀏覽器繼續往下執行。接下來的語句是函式quack的宣告,因為已經處理過了,所以瀏覽器跳過宣告,接著執行後面的條件語句。