定义
函数定义
1 2 3 4 5 6 7 8
| function name(参数) { return 值 }
name(参数)
|
return
只能返回一个值,多个值逗号并列,只返回最后一个
函数表达式
1 2 3
| let f = function() { }
|
匿名函数
箭头函数
1 2 3 4 5 6 7 8 9 10
| (param1, param2, …, paramN) => { statements } (param1, param2, …, paramN) => expression
(singleParam) => { statements } singleParam => { statements }
() => { statements }
|
箭头函数 与普通函数的区别
this
箭头函数定义时确定,普通函数调用时确定
2.箭头函数继承而来的this指向永远不变(重要)
3.call()、apply()、bind()无法改变箭头函数中this的指向
4.箭头函数不绑定arguments,取而代之用rest参数…解决
5.不能使用new操作符(作为构造函数使用)
6.不能使用原型属性
7.不能简单返回对象字面量
8.箭头函数不能换行
简写:
1 2 3 4 5 6 7 8 9
| name: function() { }
name(): {
}
|
函数和对象
JavaScript 中函数也是对象,对象则有方法,apply和call就是函数对象的方法
参数
未传入实参
1 2 3 4 5 6 7
| let f = (a1, a2) => { console.log(a2); }
f('arg1')
|
未传入实参,变量值为 undefined
参数默认值
1 2 3 4 5 6
| function log(x, y='world'){ console.log(x, y); }
log('hello');
|
立即执行函数
多个立即执行函数之间必须加 ;
1 2 3 4 5 6 7 8 9 10 11
| (function() { })();
(function() { })()
;(function() { })()
|