函数表达式允许我们在表达式中定义 JavaScript 函数。JavaScript 函数是使用函数声明或函数表达式定义的。它们之间的主要区别在于函数名称。函数表达式中可以省略函数名称。这有助于在 JavaScript 中创建匿名函数。我们可以将函数表达式存储在变量中,并使用该变量来调用函数表达式。
语法
JavaScript 中函数表达式的语法如下 –
function (parameter-list) {
statements
};
我们可以使用变量来存储 JavaScript 函数表达式 –
const varName = function (parameter-list) {
statements
};
此处,函数表达式存储在变量 varName 中。将函数分配给变量后,该变量将用于调用该函数。让我们看看下面的例子——
const sum = function (x, y) {
return x + y;
};
let z = sum(2, 3);
在上面的代码中,函数 expression 被分配给变量 sum。变量 sum 用作调用函数的函数。
请注意,function 关键字后没有名称。函数表达式允许定义匿名函数。
命名函数表达式
我们可以将命名函数定义为函数表达式 –
const sum = function addNumbers(x, y) {
return x + y;
};
let z = sum(2, 3);
但是我们只需要使用变量来调用函数。我们不能使用函数名称来调用函数。
立即调用的函数表达式
函数表达式可以用作 IIFE(立即调用的函数表达式),一旦定义就会被调用。
(function greet() {
alert("Hello World");
})();
例子
示例:函数表达式
在下面的示例中,我们将函数 expression 存储在 'sum' 变量中。函数 expression 将两个数字相加,并在输出中打印。
最后,我们使用 'sum' 变量来调用存储在其中的函数表达式。
<html>
<body>
<p id = "output"> </p>
<script>
const sum = function () {
let a = 10;
let b = 20;
document.getElementById("output").innerHTML =
"The sum of " + a + " and " + b + " is " + (a + b);
}
sum();
</script>
</body>
</html>
输出
示例:函数 expression 中的 return 语句
下面的代码演示了如何在函数表达式中使用 'return' 语句。您可以在函数表达式中使用 return 语句,就像在函数定义中使用它一样。
在下面的代码中,该函数返回两个数字的乘法值。
<html>
<body>
<p id = "output"> </p>
<script>
const mul = function (a, b) {
return a * b;
}
let result = mul(4, 5);
document.getElementById("output").innerHTML =
"The returned value from the function is " + result;
</script>
</body>
</html>
输出
示例:使用函数表达式作为值
下面的示例演示如何使用函数 expression 作为值。在这里,我们将函数表达式存储在 'num' 变量中,并将其返回值乘以 3。
您可以从函数表达式返回随机数,并将函数表达式用作值。
<html>
<body>
<p id = "output"> </p>
<script>
const num = function () {
return 2;
}
let result = num() * 3;
document.getElementById("output").innerHTML =
"The multiplication value is " + result;
</script>
</body>
</html>
输出
示例:嵌套函数表达式
下面的示例演示了如何使用嵌套函数表达式。我们定义了函数表达式并将其存储在 'num' 变量中。在函数表达式主体中,我们定义了另一个函数表达式并将其存储在 'decimal' 变量中。
我们在父函数 expression 中调用 decimal() 函数表达式并返回其值。当我们调用 num() 函数表达式时,它返回 decimal() 函数表达式返回的值。
<html>
<body>
<p id = "output"> </p>
<script>
const num = function () {
const decimal = function () {
return 5;
}
return decimal();
}
document.getElementById("output").innerHTML =
"The returned value from the function is " + num();
</script>
</body>
</html>
输出