# 函数声明

function test(arg1, arg2) {
  // code block
}

# 函数表达式

  • 字面量创建,可以被赋值给变量或作为属性
  • 可作为函数的参数或者返回值
  • 总是其他表达式的一部分
  • 函数名可选
var test = function(arg1, arg2) {
  // code block
}
getName(function getInfo() {
  return info
})

# 箭头函数

  • 函数表达式简化版
  • 一个参数可不带括号,零个或两个及以上参数需要带括号
  • 代码块是一个表达式可不带{}和return,否则要带{}以及return,不然返回值为undefined
name => 'hello' + name

() => {console.log('箭头函数')}

(name, country) => {
    let info = {}
    info.name = name
    info.country = country
    return info
}

# 函数构造函数(不常用)

// 创建了一个能返回两个参数和的函数
const adder = new Function("a", "b", "return a + b");

// 调用函数
adder(2, 6);
//  8

# 生成器函数(未来函数)