在 JavaScript 中,有几种类型的函数:
- 普通函数:最基本的函数类型,使用 function 关键字定义。
function func() { ... }
- 箭头函数:使用 => 定义的函数,更简洁的语法。
let func = () => { ... }
- 函数表达式:将函数作为表达式的值使用,可以赋值给变量或传递给其他函数。
let func = function() { ... }
- 生成器函数:使用 yield 关键字的函数,返回一个生成器对象。
function* func() { ... }
- 类构造函数:使用 class 关键字定义的构造函数,通过 new 关键字调用。
class Foo {
constructor() { ... }
}
- 立即调用函数表达式(IIFE):一种特殊的函数表达式,执行后立即调用自身。
(function() { ... })()
这些类型的函数有以下区别:
- 普通函数和箭头函数的区别主要是语法,实质上都是函数。
- 函数表达式更灵活,可以在定义函数时就传入参数和赋值给变量。
- 生成器函数通过 yield 关键字可以实现迭代器模式。
- 类构造函数通过 new 关键字调用并返回一个对象。
- IIFE 可以创建一个单独的作用域并立即执行代码,常用于隐藏实现细节。
所以不同类型的函数有不同的语法和用途,需要根据场景选择正确的类型。理解各种函数之间的异同,是精通 JavaScript 的基础。