JS 函数

创建时间:2019.02.21 修改时间:2019.03.24

函数声明

function functionName(parameters) {
   执行的代码 
}

functionName(parameters);    // 函数调用 

PS: 分号是用来分隔可执行语句。函数声明后不会立即执行,只有调用到时才会执行,所以不以分号结束。

匿名函数

匿名函数是一个函数表达式,没有名称。

function (parameters) {
   执行的代码 
}

匿名函数可以存储在变量中,通过变量调用。

如:

var x = function (a, b) {return a * b};
var z = x(3, 5);

简化形式:

var x = (a, b) => {return a * b};

如果函数部分只是一个语句,则可以继续简化为:

var x = (a, b) => a * b;

如果参数部分只有一个参数,如:

var x = (a) => a * a;

则可简化为:

var x = a => a * a;

匿名函数自调用

如果函数只使用一次,可以匿名函数自调用。

(function () {
   执行的代码 
})();

简化形式:

(() => {
   执行的代码 
})();

匿名函数自调用后并赋值:

var x = function () {
   执行的代码 
}();

相当于:

var a = (function () {
   执行的代码 
  return x;
})();

a 指向匿名函数执行后的返回值,而不是指向函数本身。

其中 x 可以是一个数值,也可以是一个函数。

函数提升

与变量的声明类似,函数的声明会默认提升到前面去,因此函数可以在声明之前调用。

functionName(parameters);    // 函数调用 

function functionName(parameters) {
   执行的代码 
}

PS: 匿名函数无法提升。