在 JavaScript 中, 函数被当作头等公民, 也称函数式编程

  • 函数可以作为别的函数的参数、函数的返回值,赋值给变量或存储在数据结构中

  • 函数可以在变量和变量之间相互进行赋值

  • 既然函数可以作为一个值相互赋值,那么也可以传递给另外一个函数

foo 这种函数我们也可以称之为高阶函数(Higher-order function)

高阶函数必须至少满足两个条件之一:

  • 接受一个或多个函数作为输入
  • 输出一个函数

立即执行函数

Immediately-Invoked Function Expression(IIFE 立即调用函数表达式)

表达的含义是一个函数定义完后被立即执行

  • 第一部分是定义了一个匿名函数,这个函数有自己独立的作用域
  • 第二部分是后面的(),表示这个函数被执行了

这个东西有什么用?

会创建一个独立的执行上下文环境,可以避免外界访问或修改内部的变量,也避免了对内部变量的修改
防止全局变量命名冲突

代码风格