JavaScript函數(shù)聲明和函數(shù)表達式的區(qū)別
一、寫法不一樣
//函數(shù)聲明
let res1 = sum1(10 , 20)
console.log(res1)
function sum1(num1, num2) {
return num1 + num2
}
//函數(shù)表達式
let res2 = sum2(10 , 20)
console.log(res2)
let sum2 = function ( num1, num2 ){
return num1 + num2
}二、函數(shù)聲明加載
函數(shù)聲明可以把函數(shù)預加載,而表達式不會
以函數(shù)聲明的方法定義的函數(shù),函數(shù)可以在函數(shù)聲明之前調(diào)用,而函數(shù)表達式的函數(shù)只能在聲明之后調(diào)用。

三、分析瀏覽器如何執(zhí)行代碼
第一步:分析函數(shù)聲明
在分析網(wǎng)頁期間(執(zhí)行任何代碼之前),瀏覽器查找函數(shù)聲明。找到函數(shù)聲明時,瀏覽器創(chuàng)建相應的函數(shù),并將得到的函數(shù)引用賦給與函數(shù)同名的變量。

第二步:瀏覽器執(zhí)行代碼
處理所有的函數(shù)聲明后,瀏覽器回到代碼開頭,開始按從頭到尾的順序執(zhí)行代碼。

第三步:繼續(xù)執(zhí)行
處理完變量fly后,瀏覽器繼續(xù)往下執(zhí)行。接下來的語句是函數(shù)quack的聲明,因為已經(jīng)處理過了,所以瀏覽器跳過聲明,接著執(zhí)行后面的條件語句。

到此這篇關于JavaScript函數(shù)聲明和函數(shù)表達式的區(qū)別的文章就介紹到這了,更多相關JS函數(shù)聲明 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
實時編輯網(wǎng)頁網(wǎng)頁文字實時編輯,如同TEXTBOX一般
實時編輯網(wǎng)頁網(wǎng)頁文字實時編輯,如同TEXTBOX一般...2007-03-03
TypeScript中正確使用interface和type的方法實例
在ts中定義類型由兩種方式:接口(interface)和類型別名(type alias),interface只能定義對象類型,下面這篇文章主要給大家介紹了關于TypeScript中正確使用interface和type的相關資料,需要的朋友可以參考下2021-09-09

