定义函数的方式
1.函数声明
2.函数表达式
函数声明如下代码所示:

关于函数声明,它最重要的一个特征就是函数声明提升,意思是执行代码之前先读取函数声明。这意味着可以把函数声明放在调用它的语句之后。如下代码可以正确执行:

函数表达式
函数表达式有好几种不同的语法。最常见和最具代表性的一种如下代码所示:

这种形式看起来像是常规的变量赋值语句。但函数表达式和函数声明的区别是函数表达式在使用前必须先赋值。所以接下来看到的代码执行时会出错:

造成这种现象是因为解析器向执行环境加载数据时,解析器会优先读取函数声明,使其在执行代码前可用。而函数表达式,则必须等到解析器执行到它所在的代码区域,才会进行解析。