函数声明
//ES5
function getSum(){}
function (){}//匿名函数
//ES6
()=>{}//如果{}内容只有一行{}和return关键字可省,
函数表达式(函数字面量)
//ES5
var sum=function(){}
//ES6
let sum=()=>{}//如果{}内容只有一行{}和return关键字可省,
构造函数
const sum = new Function('a', 'b' , 'return a + b')
三种方法的对比
1.函数声明有预解析,而且函数声明的优先级高于变量;2.使用函数构造函数定义函数的方式是一个函数表达式,这种方式会导致解析两次代码,影响性能。第一次解析常规的JavaScript代码,第二次解析重构构造函数的字符串