函数声明与函数表达式的区别

分类:js

函数声明

函数声明以 function 关键字开头,接着是必须的函数(变量)名和以逗号分隔的可选的参数列表,再接着就是以大括号封装的函数体。函数声明必须是一个单独的 JavaScript 语句。

函数表达式

在任何情况下都是其它 JavaScript 语句的一部分(比如赋值表达式等号的右侧、函数的参数)的函数被称为函数表达式。

比较

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//函数声明
function a() {
function b() {}
}
//以下为函数表达式
var c = function() {};
c(function() {
return function() {};
});

(function d() {})();

+(function() {})();
-(function() {})();
!(function() {})();
~(function() {})();

简单来概括就是:

  • 函数声明是由函数自身构成的函数,不包括其他语句。
  • 函数表达式是由函数和其他语句一起构成的函数。