1. 程式人生 > 其它 >函式宣告和函式表示式的區別

函式宣告和函式表示式的區別

一、寫法不一樣

 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的宣告,因為已經處理過了,所以瀏覽器跳過宣告,接著執行後面的條件語句。