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