JavaScript 中的 const 函式表示式
Jagathish
2023年10月12日
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 中的函式表示式
函式表示式與函式宣告非常相似。唯一的區別是:
- 將函式賦值給一個變數,使用變數名執行函式。
var sumFn1 = function sum(a, b) {
return a + b;
};
console.log('sumFn1(1,3) :', sumFn1(1, 3));
輸出:
sumFn1(1,3) :4
- 函式名可以省略。
var sumFn2 = function(a, b) {
return a + b;
};
console.log('sumFn2(1,3) :', sumFn2(1, 3));
輸出:
sumFn2(1,3) :4
- 可用於建立自呼叫函式(Immediately Invoking Function Expression),函式一定義就執行。
(function(a, b) {
return a + b;
})(3, 4); // 7
輸出:
7
- 函式表示式在函式被宣告之前不會被提升,所以在函式表示式被計算之前我們不能呼叫函式。
sumFn3(1, 3); // TypeError: sumFn3 is not a function
var sumFn3 = function sum(a, b) {
return a + b;
};
輸出:
TypeError: sumFn3 is not a function
- 我們可以使用箭頭函式表示式並將其賦值給一個變數。它將使程式碼更短且更易於理解。
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
。