// 匿名的函数表达式
var foo = fuction() {
}
// 命名的函数表达式
var foo = function foo() {
}
// 函数声明
function foo() {
}
RT
粗暴地说的话,“function”关键字开头的才是函数声明,其他全都是函数表达式,比如
js
(function a() {}) +function a() {} -function a() {} ~function a() {} !function a() {}
等等全都是函数表达式,例外应该只有{
和label:
两种
js
{function a(){}} label:function a(){}
这些是函数声明
或者说,出现在“表达式”位置的是函数表达式,出现在“语句”位置的是函数声明,比如
js
if(function a() {}) {} //函数表达式 if(false) function b() {} //函数声明
编译原理对这块理解有帮助