JavaScript 中的 const 函式表示式

Jagathish 2023年1月30日 2022年5月1日
  1. 什麼是 JavaScript 中的函式宣告
  2. 什麼是 JavaScript 中的函式表示式
  3. 在 JavaScript 中使用 const 函式表示式
JavaScript 中的 const 函式表示式

function 語句宣告瞭一個僅在呼叫時才執行的函式。本文將討論 JavaScript 中常量函式表示式的不同用法。

什麼是 JavaScript 中的函式宣告

函式宣告意味著定義一個帶有名稱引數的函式。讓我們建立一個名為 sum 的函式,它將接受兩個引數,

function sum(a,b){
return a + b;
}

宣告的函式被提升到全域性範圍或封閉塊的頂部。因此,我們可以在宣告之前呼叫該函式。

console.log("sum(1,2) :", sum(1,2));
function sum(a,b){
return a + b;
}

輸出:

sum(1,2) :3

在上面的程式碼中,函式 sum 將在執行程式碼的第一行之前可用。

什麼是 JavaScript 中的函式表示式

函式表示式與函式宣告非常相似。唯一的區別是:

  1. 將函式賦值給一個變數,使用變數名執行函式。
var sumFn1 = function sum(a,b) {
return a + b;
};
console.log("sumFn1(1,3) :", sumFn1(1,3));

輸出:

sumFn1(1,3) :4
  1. 函式名可以省略。
var sumFn2 = function(a,b) {
return a + b;
};
console.log("sumFn2(1,3) :", sumFn2(1,3));

輸出:

sumFn2(1,3) :4
  1. 可用於建立自呼叫函式(Immediately Invoking Function Expression),函式一定義就執行。
(function(a,b) {
return a + b;
})(3,4); // 7

輸出:

7
  1. 函式表示式在函式被宣告之前不會被提升,所以在函式表示式被計算之前我們不能呼叫函式。
sumFn3(1,3); //TypeError: sumFn3 is not a function
var sumFn3 = function sum(a,b) {
return a + b;
};

輸出:

TypeError: sumFn3 is not a function
  1. 我們可以使用箭頭函式表示式並將其賦值給一個變數。它將使程式碼更短且更易於理解。
var sumFn4 = (a,b) => a + b;
console.log("sumFn4(10,20) :", sumFn4(10,20));

輸出:

sumFn4(10,20) :30

在 JavaScript 中使用 const 函式表示式

JavaScript ES6 中引入了關鍵字 const

將函式表示式分配給 const 變數可確保函式定義不變,因為你無法更改 const 變數。

var changableSumFn = function(a,b) {
return a + b;
}
changableSumFn(2,3); // 5

// Function definition of a non-constant variable can be changed
changableSumFn = function(a,b) {
return a * b;
}
changableSumFn(2,3); // 6

// using const function expression
const constSumFn = function(a,b) {
return a + b;
}
constSumFn(1,3); // 4

// when we try to chanage const value we will get error
constSumFn = function(a,b) { // TypeError:Assignment to constant variable.
return a * b;
}

輸出:

5
6
4
TypeError: Assignment to constant variable.

在上面的程式碼中,

  • 建立一個函式表示式來計算兩個值的總和,並將其分配給一個非常量變數 changableSumFn
  • 為變數 changableSumFn 分配了一個新的函式表示式(它將計算兩個值的乘積)。當我們執行 changableSumFn 時,會返回兩個值的乘積。
  • 然後,我們建立了另一個函式表示式並將其分配給一個 const 變數 constSumFn。當我們將一個新的函式表示式分配給 constSumFn 變數時,我們將得到 TypeError

相關文章 - JavaScript Function