箭头函数
箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments,super或new.target。箭头函数表达式更适用于那些本来需要匿名函数的地方,并且它不能用作构造函数。
基础语法
1 2 3 4 5 6 7 8 9 10
| (param1, param2, …, paramN) => { statements } (param1, param2, …, paramN) => expression
(singleParam) => { statements } singleParam => { statements }
() => { statements }
|
高级语法
1 2 3 4 5 6 7 8 9 10 11
| params => ({foo: bar})
(param1, param2, ...rest) => { statements } (param1 = defaultValue1, param2, …, paramN = defaultValueN) => { statements }
let f = ([a, b] = [1, 2], {x: c} = {x: a + b}) => a + b + c; f();
|
更短的函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| var elements = [ 'Hydrogen', 'Helium', 'Lithium', 'Beryllium' ];
elements.map(function(element) { return element.length; });
elements.map((element) => { return element.length; });
elements.map(element => { return element.length; });
elements.map(element => element.length);
elements.map(({ "length": lengthFooBArX }) => lengthFooBArX);
|
通过Value找到对象中的Key
1 2 3
| function findKey (obj,value, compare = (a, b) => a === b) { return Object.keys(obj).find(k => compare(obj[k], value)) }
|