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 粼粼的林林總總
7會員
32內容數
不定期地分享程式/旅遊/學習/閱讀或各式各樣的文章,如果對我的分享有興趣,歡迎來找我玩~
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
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
練習目標 這篇是我的前端練習記錄,透過 CodePen 製作一個小功能:「點一下按鈕,就讓整個畫面換個背景色」。 這個練習適合剛開始學習 HTML、CSS、JavaScript 的人,幫助理解: 按鈕怎麼綁定事件 JavaScript 怎麼控制畫面樣式 如何產生隨機顏色 練習畫面預覽
Thumbnail
練習目標 這篇是我的前端練習記錄,透過 CodePen 製作一個小功能:「點一下按鈕,就讓整個畫面換個背景色」。 這個練習適合剛開始學習 HTML、CSS、JavaScript 的人,幫助理解: 按鈕怎麼綁定事件 JavaScript 怎麼控制畫面樣式 如何產生隨機顏色 練習畫面預覽
Thumbnail
這篇文章深入淺出地解釋 JavaScript 中表達式 (expression) 與陳述式 (statement) 的差異,並以 React 中 JSX 的應用為例,說明為何大括號 {} 內只能放入表達式。文章以類比人類語言的句子結構來幫助理解,並提供相關參考資料連結。
Thumbnail
這篇文章深入淺出地解釋 JavaScript 中表達式 (expression) 與陳述式 (statement) 的差異,並以 React 中 JSX 的應用為例,說明為何大括號 {} 內只能放入表達式。文章以類比人類語言的句子結構來幫助理解,並提供相關參考資料連結。
Thumbnail
iFrame在微前端架構中的優缺點,分析了其對用戶體驗、SEO及性能的影響。 iFrame在嵌入小型UI元件、創建隔離環境等特定場景中仍具備相當的應用價值。
Thumbnail
iFrame在微前端架構中的優缺點,分析了其對用戶體驗、SEO及性能的影響。 iFrame在嵌入小型UI元件、創建隔離環境等特定場景中仍具備相當的應用價值。
Thumbnail
本文介紹如何使用Vite建立前端開發初始檔案,並加入Tailwindcss的教學。透過指令和配置檔,讓你能快速建立個人專案的開發環境,並學習如何加入全域的Tailwindcss樣式。還有影片教學、資源連結和更多相關教學文章等,幫助你進一步學習。
Thumbnail
本文介紹如何使用Vite建立前端開發初始檔案,並加入Tailwindcss的教學。透過指令和配置檔,讓你能快速建立個人專案的開發環境,並學習如何加入全域的Tailwindcss樣式。還有影片教學、資源連結和更多相關教學文章等,幫助你進一步學習。
Thumbnail
為什麼要登出使用者? 安全性:防止未經授權的人,在使用者暫離時使用系統,這在公用或共享電腦的環境中尤其重要。 資料保護:只要使用者處於登入狀態,就會暴露在個人資料被他人操縱或利用的風險中,因此登出閒置使用者對資安也很重要。 如何在 Vue 3 專案中實作此功能?
Thumbnail
為什麼要登出使用者? 安全性:防止未經授權的人,在使用者暫離時使用系統,這在公用或共享電腦的環境中尤其重要。 資料保護:只要使用者處於登入狀態,就會暴露在個人資料被他人操縱或利用的風險中,因此登出閒置使用者對資安也很重要。 如何在 Vue 3 專案中實作此功能?
Thumbnail
這一集用最新的Vite工具去創建初始檔案。Vite用於創建和構建Web應用程序,具有快速的啟動時間、即時熱更新、小型體積、支持多種框架和可擴展性等優點。
Thumbnail
這一集用最新的Vite工具去創建初始檔案。Vite用於創建和構建Web應用程序,具有快速的啟動時間、即時熱更新、小型體積、支持多種框架和可擴展性等優點。
Thumbnail
隨著科技發展迅速,軟體職缺需求大增長,有些朋友對IT產業有興趣並想成為一位軟體工程師,但不知道從哪裡下手,透過傳統學校、培訓班或自學等不同方法,有多種學習路徑可以選擇。此外,還提供了一些額外資源教學連結,方便讀者進一步提升相關技能。
Thumbnail
隨著科技發展迅速,軟體職缺需求大增長,有些朋友對IT產業有興趣並想成為一位軟體工程師,但不知道從哪裡下手,透過傳統學校、培訓班或自學等不同方法,有多種學習路徑可以選擇。此外,還提供了一些額外資源教學連結,方便讀者進一步提升相關技能。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News