JavaScript 入門:JS 的函式解析! 宣告式、表達式、箭頭函式

更新 發佈閱讀 5 分鐘

JavaScript 中,函式 (Function) 是一種封裝好、可以重複呼叫的程式區塊。函式用來封裝重複的邏輯、接收參數、回傳輸出、建立自己的作用域(scope)。

在 JS 中,函式可以:

  • 被指派給變數
  • 當參數傳入
  • 當回傳值

函式的種類

JavaScript 的函式的定義方式可分為:

  • 函式宣告式 (Function declaration)
  • 函式表達式(Function expression)

函式宣告式 Function declaration

函式宣告式也被稱為函式陳述式。使用 function 關鍵字宣告有名稱的函式,並且這個函式會被提升,因此也可以在宣告前呼叫。

語法:function 關鍵字宣告,function 後方接函式名稱,名稱後的括號內放參數(可選)。


function functionName(parameters){
// content
} // function declaration 是語法層級的宣告,不是表達是,所以結尾不用加 ";"

範例

function sayHey(name){
console.log("Hey " + name);
}

// 使用函式
sayHey("Elaine")
✏️ function declaration 也會提升喔!

函式表達式 Function expression

函式表達式是將函式賦值給一個變數的定義方式。函式表達式又可以再細分成一般的函式表達式、箭頭函式、立即呼叫函式表達式。

  • 一般函式表達式範例
const greeting = function sayHello(name){
return `Hello ${name}`
};
console.log(greeting("Elaine")); // Hello Elaine

在上面的範例可以看到,我們將 sayHello 這個函數存到 greeting 這個 const 中,就可以直接使用這個 greeting。

不過,通常在定義函式表達式時,我們也可以省略等號右方函式的名稱,也就是匿名函式的形式:

const greeting = function(name){
return `Hello ${name}`
};
console.log(greeting("Elaine")); // Hello Elaine
函式表達式也只有變數宣告會提升,函式內容不會!
  • 箭頭函式 Arrow function

箭頭函式在 ES6 推出,在寫法上比一般的函式表達式更簡潔,另一個重點就是「this 規則不同」,不過我們今天先把重點放在語法上~

  1. 首先,arrow function 可以省略掉 function 關鍵字,並用使用 =>
const greeting = (name) => {
return `Hello ${name}`
};

// 使用函式
console.log(greeting("Elaine"));
  1. 如果函式只有一個參數,可以省略掉參數外的括號 ()
const greeting = name => {
return `Hello ${name}`
};

// 使用函式
console.log(greeting("Elaine"));
  1. 如果函式內容只有一行 return,可以省略 return 關鍵字與大括號 {}
const greeting = name => `Hello ${name}`;

// 使用函式
console.log(greeting("Elaine"));
  • 立即呼叫函式表達式 Immediately Invoked Function Expression

立即呼叫函式有時也被稱作 self-invoking function,這種函式的重點在於「建立後會立刻執行」

(function(name){
console.log(`Hello ${name}`)
})("Elaine");


留言
avatar-img
Elaine 粼粼的林林總總
13會員
40內容數
不定期地分享程式/旅遊/學習/閱讀或各式各樣的文章,如果對我的分享有興趣,歡迎來找我玩~
2026/02/07
帶你理解 JavaScript 的 Hoisting 機制,包括 var、let、const 變數宣告及函式宣告與表達式的提升行為,以及暫時死區 (Temporal Dead Zone) 的概念。
Thumbnail
2026/02/07
帶你理解 JavaScript 的 Hoisting 機制,包括 var、let、const 變數宣告及函式宣告與表達式的提升行為,以及暫時死區 (Temporal Dead Zone) 的概念。
Thumbnail
2026/02/06
閉包 (Closure) 是 JavaScript 核心觀念之一,指函式與其建立時的詞法環境結合。因為詞法作用域在宣告時就決定變數存取範圍,即使外層函式執行完畢,內部函式仍能存取外部變數。本文透過實例解析閉包原理與實際應用。
2026/02/06
閉包 (Closure) 是 JavaScript 核心觀念之一,指函式與其建立時的詞法環境結合。因為詞法作用域在宣告時就決定變數存取範圍,即使外層函式執行完畢,內部函式仍能存取外部變數。本文透過實例解析閉包原理與實際應用。
2026/02/05
開發 JavaScript 程式時,了解作用域的概念是非常重要的事情。本篇文章介紹了 JS 的三種作用域:全域作用域、函式作用域、區塊作用域以及作用域鏈的概念。
2026/02/05
開發 JavaScript 程式時,了解作用域的概念是非常重要的事情。本篇文章介紹了 JS 的三種作用域:全域作用域、函式作用域、區塊作用域以及作用域鏈的概念。
看更多
你可能也想看
Thumbnail
隨著科技發展迅速,軟體職缺需求大增長,有些朋友對IT產業有興趣並想成為一位軟體工程師,但不知道從哪裡下手,透過傳統學校、培訓班或自學等不同方法,有多種學習路徑可以選擇。此外,還提供了一些額外資源教學連結,方便讀者進一步提升相關技能。
Thumbnail
隨著科技發展迅速,軟體職缺需求大增長,有些朋友對IT產業有興趣並想成為一位軟體工程師,但不知道從哪裡下手,透過傳統學校、培訓班或自學等不同方法,有多種學習路徑可以選擇。此外,還提供了一些額外資源教學連結,方便讀者進一步提升相關技能。
Thumbnail
這一集用最新的Vite工具去創建初始檔案。Vite用於創建和構建Web應用程序,具有快速的啟動時間、即時熱更新、小型體積、支持多種框架和可擴展性等優點。
Thumbnail
這一集用最新的Vite工具去創建初始檔案。Vite用於創建和構建Web應用程序,具有快速的啟動時間、即時熱更新、小型體積、支持多種框架和可擴展性等優點。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
這篇文章深入淺出地解釋 JavaScript 中表達式 (expression) 與陳述式 (statement) 的差異,並以 React 中 JSX 的應用為例,說明為何大括號 {} 內只能放入表達式。文章以類比人類語言的句子結構來幫助理解,並提供相關參考資料連結。
Thumbnail
這篇文章深入淺出地解釋 JavaScript 中表達式 (expression) 與陳述式 (statement) 的差異,並以 React 中 JSX 的應用為例,說明為何大括號 {} 內只能放入表達式。文章以類比人類語言的句子結構來幫助理解,並提供相關參考資料連結。
Thumbnail
本文介紹如何使用Vite建立前端開發初始檔案,並加入Tailwindcss的教學。透過指令和配置檔,讓你能快速建立個人專案的開發環境,並學習如何加入全域的Tailwindcss樣式。還有影片教學、資源連結和更多相關教學文章等,幫助你進一步學習。
Thumbnail
本文介紹如何使用Vite建立前端開發初始檔案,並加入Tailwindcss的教學。透過指令和配置檔,讓你能快速建立個人專案的開發環境,並學習如何加入全域的Tailwindcss樣式。還有影片教學、資源連結和更多相關教學文章等,幫助你進一步學習。
Thumbnail
iFrame在微前端架構中的優缺點,分析了其對用戶體驗、SEO及性能的影響。 iFrame在嵌入小型UI元件、創建隔離環境等特定場景中仍具備相當的應用價值。
Thumbnail
iFrame在微前端架構中的優缺點,分析了其對用戶體驗、SEO及性能的影響。 iFrame在嵌入小型UI元件、創建隔離環境等特定場景中仍具備相當的應用價值。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
為什麼要登出使用者? 安全性:防止未經授權的人,在使用者暫離時使用系統,這在公用或共享電腦的環境中尤其重要。 資料保護:只要使用者處於登入狀態,就會暴露在個人資料被他人操縱或利用的風險中,因此登出閒置使用者對資安也很重要。 如何在 Vue 3 專案中實作此功能?
Thumbnail
為什麼要登出使用者? 安全性:防止未經授權的人,在使用者暫離時使用系統,這在公用或共享電腦的環境中尤其重要。 資料保護:只要使用者處於登入狀態,就會暴露在個人資料被他人操縱或利用的風險中,因此登出閒置使用者對資安也很重要。 如何在 Vue 3 專案中實作此功能?
Thumbnail
在 2021 年的剛轉職成為前端工程師的時候,我在面試時滿常會被詢問到 JavaScript 中閉包的議題,當時候自己回答的滿差的,於是在 2022 年時,我寫了一系列的有關於函式程式設計鐵人賽的文章, 裡頭就有簡單提到有關於閉包的議題。
Thumbnail
在 2021 年的剛轉職成為前端工程師的時候,我在面試時滿常會被詢問到 JavaScript 中閉包的議題,當時候自己回答的滿差的,於是在 2022 年時,我寫了一系列的有關於函式程式設計鐵人賽的文章, 裡頭就有簡單提到有關於閉包的議題。
Thumbnail
練習目標 這篇是我的前端練習記錄,透過 CodePen 製作一個小功能:「點一下按鈕,就讓整個畫面換個背景色」。 這個練習適合剛開始學習 HTML、CSS、JavaScript 的人,幫助理解: 按鈕怎麼綁定事件 JavaScript 怎麼控制畫面樣式 如何產生隨機顏色 練習畫面預覽
Thumbnail
練習目標 這篇是我的前端練習記錄,透過 CodePen 製作一個小功能:「點一下按鈕,就讓整個畫面換個背景色」。 這個練習適合剛開始學習 HTML、CSS、JavaScript 的人,幫助理解: 按鈕怎麼綁定事件 JavaScript 怎麼控制畫面樣式 如何產生隨機顏色 練習畫面預覽
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News