RxJs学习笔记2--js基础知识--箭头函数

2018-07-24  本文已影响5人  yahzon

基础语法:

(param1,param2,...,paramN) => { 函数 }

其他形式:

(param1,param2,...,paramN) => 表达式  
//只有一条语句时省略{},和return;相当于:(参数1, 参数2, …, 参数N) =>{ return 表达式; }
param1 => {函数声明}
// 当只有一个参数时,圆括号是可选的;相当于:(单一参数) => {函数声明}
() => {函数声明}
// 没有参数的函数应该写成一对圆括号。

几个示例:

(x,y) => 3x-2y

() => console.log("-----this is a line -----");

setTimeout( () => {
  console.log('I happen sooner');
  setTimeout( () => {
    // deeper code
    console.log('I happen later');
  }, 1);
}, 1);

var arr = [5, 6, 13, 0, 1, 18, 23];
var double = arr.map(v => v * 2);       
// [10, 12, 26, 0, 2, 36, 46]
var even = arr.filter(v => v % 2 == 0); 
// [6, 0, 18]

高级语法

//加括号的函数体返回对象字面表达式:
参数=> ({foo: bar})

//支持剩余参数和默认参数
(参数1, 参数2, ...rest) => {函数声明}
(参数1 = 默认值1,参数2, …, 参数N = 默认值N) => {函数声明}

//同样支持参数列表解构
let f = ([a, b] = [1, 2], {x: c} = {x: a + b}) => a + b + c;
f();  // 6

用法示例:

示例1:

var materials = [
  'Hydrogen',
  'Helium',
  'Lithium',
  'Beryllium'
];
materials.map(material => material.length); // [8, 6, 7, 9]
//相当于:
materials.map((material) => {
  return material.length;
}); // [8, 6, 7, 9]
//不使用箭头函数:
materials.map(function(material) { 
  return material.length; 
}); // [8, 6, 7, 9]

示例2

上一篇 下一篇

猜你喜欢

热点阅读