JavaScript 中的函数有哪些类型?它们之间的区别是什么?

在 JavaScript 中,有几种类型的函数:

  1. 普通函数:最基本的函数类型,使用 function 关键字定义。
function func() { ... }
  1. 箭头函数:使用 => 定义的函数,更简洁的语法。
let func = () => { ... }
  1. 函数表达式:将函数作为表达式的值使用,可以赋值给变量或传递给其他函数。
let func = function() { ... }
  1. 生成器函数:使用 yield 关键字的函数,返回一个生成器对象。
function* func() { ... }
  1. 类构造函数:使用 class 关键字定义的构造函数,通过 new 关键字调用。
class Foo {
  constructor() { ... }
}
  1. 立即调用函数表达式(IIFE):一种特殊的函数表达式,执行后立即调用自身。
(function() { ... })()

这些类型的函数有以下区别:

  • 普通函数和箭头函数的区别主要是语法,实质上都是函数。
  • 函数表达式更灵活,可以在定义函数时就传入参数和赋值给变量。
  • 生成器函数通过 yield 关键字可以实现迭代器模式。
  • 类构造函数通过 new 关键字调用并返回一个对象。
  • IIFE 可以创建一个单独的作用域并立即执行代码,常用于隐藏实现细节。

所以不同类型的函数有不同的语法和用途,需要根据场景选择正确的类型。理解各种函数之间的异同,是精通 JavaScript 的基础。