原文地址: http://oldjiang.tech/javascript/99-function.html
一、function declaration
javascript的函数定义通过关键字function
来实现,格式如下:
function functionName(arg0, arg1) {
....;
return xxx; //可选
}
示例:
二、function expression
定义格式
function(a, b) {
...
return xxx;
}
与函数定义的区别在于没有方法名,函数表达式可以保存在变量中,可以作为变量进行传值
三、比较
先看如下的示例:
//function declaration
sayHi();
function sayHi() {
console.log('hi');
}
//function expression
sayHello();
sayHello = () => console.log('hello');
执行结果如下:
区别如下:
- function declaration加载完了之后再执行javascript代码
- function expression是在javascript实际执行到才生效
function expression使用的场景如下:
- Closure
- 方法作为其他方法的参数,用来实现高阶函数
- IIFE(Immediately Invoked Function Expression)
四、IIFE
格式如下:
(function() {
})();
通过IIFE可以来实现javascript module的效果
五、参考
了解更多: