JavaScript函式宣告和函式表示式區別
JavaScript中有兩種方式建立函式:
(1).函式宣告方式。
(2).函式表示式方式。
兩者作用應該沒有異議,都可以建立一個函式,但是兩者的區別也是巨大的。
一.函式宣告:
所謂的函式宣告就是以正規的語法方式建立一個函式:
[JavaScript] 純文字檢視 複製程式碼function functionName(){ //code }
函式宣告的語法格式是固定的,必須是function關鍵字+函式名稱+小括號()+大括號的函式體內容。
再來看一段程式碼:
[JavaScript] 純文字檢視 複製程式碼func(); function func(){ console.log("螞蟻部落"); }
JavaScript程式碼是順序執行的,但func函式依然可以正常執行,因為函式宣告有提升效果。
關於宣告提升可以參閱JavaScript變數和函式宣告宣告前置一章節。
二.函式表示式:
關於表示式的概念可以參閱JavaScript 表示式一章節。
所謂的函式表示式其實就是函式宣告存在於一個表示式語句中,可以是具名的函式,也可以是匿名函式函式。
看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼func() var func=function(){ console.log("螞蟻部落"); }
上面的程式碼會報錯,因為通過表示式方式建立一個函式,將函式物件賦值給變數func,變數宣告在預編譯階段是前置,但變數的賦值是發生在執行時階段,所以當呼叫func函式的時候,變數還沒有被賦值,再來看一段程式碼:
[JavaScript] 純文字檢視 複製程式碼newFunc(); var newFunc=function func(){ console.log("螞蟻部落"); }
上面程式碼是一個不倫不類的表示式方式,當然實際中沒有人這麼用。
其實表示式方式就是將一個函式物件賦值給一個變數,然後再使用此變數呼叫函式,就是一個簡單的賦值語句。
更多關於表示式方式宣告函式可以參閱JavaScript 小括號()分組運算子一章節。
相關文章
- 函式宣告與函式表示式有什麼區別?函式
- javascript 的函式宣告與表示式對比JavaScript函式
- 何時使用函式表示式與函式宣告函式
- JS 中的函式表示式和函式宣告你混淆了嗎?JS函式
- JavaScript方法和函式區別JavaScript函式
- javascript-函式表示式JavaScript函式
- strcpy函式和memcpy函式的區別函式memcpy
- StretchBlt函式和BitBlt函式的區別和用法函式
- # 普通函式和箭頭函式的區別函式
- TypeScript 中函式的理解?與 JavaScript 函式的區別?TypeScript函式JavaScript
- JavaScript:鉤子函式與回撥函式的區別JavaScript函式
- 你不知道的JavaScript--Item7 函式和(命名)函式表示式JavaScript函式
- 變數和函式宣告提升,let和var const區別變數函式
- kotlin 函式和 Lambda 表示式Kotlin函式
- JavaScript 之有趣的函式(函式宣告、呼叫、預解析、作用域)JavaScript函式
- 瞭解 JavaScript 函數語言程式設計 - 宣告式函式JavaScript函數程式設計函式
- 箭頭函式、簡寫函式、普通函式的區別函式
- 箭頭函式和普通函式的10個區別函式
- 簡述箭頭函式和普通函式的區別函式
- JavaScript塊級作用域宣告函式JavaScript函式
- JavaScript 變數與函式宣告前置JavaScript變數函式
- 06函式宣告函式
- 箭頭函式與普通函式區別函式
- 5.函式和lambda表示式函式
- python內建函式-eval()函式與exec()函式的區別Python函式
- Python函式與lambda 表示式(匿名函式)Python函式
- JavaScript中的compose函式和pipe函式JavaScript函式
- 面試題:箭頭函式和普通函式的區別面試題函式
- Day 59/100 箭頭函式和普通函式的區別函式
- JS變數宣告和函式宣告提升JS變數函式
- 建構函式與普通函式的區別函式
- 箭頭函式與普通函式的區別函式
- JS函式表示式——函式遞迴、閉包JS函式遞迴
- 【Python】python map()函式和lambda表示式Python函式
- 函式表示式–遞迴函式遞迴
- JS 命令式 宣告式 函式式 程式設計?JS函式程式設計
- 通過一道面試題來學習原型/原型鏈-函式宣告/函式表示式面試題原型函式
- 深入理解箭頭函式和傳統函式的區別函式