函数表达式是将函数赋值给变量的写法,可匿名或命名,常用于回调、立即执行等场景。例如:let greet = function(name) { return "Hello, " + name; }; 支持递归与调试,如 let factorial = function calc(n) { if (n

在JavaScript中,函数表达式是一种常见的定义函数的方式。它将函数作为表达式处理,并通常赋值给一个变量。这种方式与函数声明不同,具有更灵活的使用场景,比如匿名函数、立即执行函数和回调函数等。
什么是函数表达式
函数表达式是将一个函数赋值给变量的写法。函数本身可以有名字,也可以没有(即匿名函数)。
基本语法如下:
let 变量名 = function(参数) {函数体
};
例如:
let greet = function(name) {return "Hello, " + name;
};
console.log(greet("Alice")); // 输出: Hello, Alice
这个例子中,function(name) { ... } 是一个函数表达式,被赋值给了变量 greet。
命名函数表达式
函数表达式也可以拥有名字,这在调试或递归调用时很有帮助。
let factorial = function calc(n) {if (n return n * calc(n - 1);
};
console.log(factorial(5)); // 输出: 120
这里 calc 是函数内部的名字,外部只能通过 factorial 调用。命名函数表达式有助于堆栈跟踪,提升可读性。
函数表达式的赋值与使用
函数表达式赋值后,变量就成为函数的引用,可以像普通函数一样调用。
- 可以赋值给多个变量,实现别名调用
- 可以作为参数传递给其他函数(回调函数)
- 可以作为返回值从函数中返回
示例:作为回调使用
function doOperation(a, b, operation) {return operation(a, b);
}
let add = function(x, y) {
return x + y;
};
console.log(doOperation(5, 3, add)); // 输出: 8
立即执行函数表达式(IIFE)
函数表达式可以定义后立即执行,常用于创建私有作用域。
(function() {let privateVar = "我是私有的";
console.log(privateVar);
})(); // 立即执行
IIFE 避免了污染全局变量,适合模块化或初始化代码。
基本上就这些。函数表达式灵活实用,掌握它有助于理解高阶函数、闭包和现代JS编程模式。注意函数表达式不会被提升,必须先赋值再调用,这点和函数声明不同。不复杂但容易忽略。










