ES6 扩展运算符 三个点(...)

它是什么

es6中引入扩展运算符(...),它用于把一个数组转化为用逗号分隔的参数序列,它常用在不定参数个数时的函数调用,数组合并等情形。因为typeScript是es6的超集,所以typeScript也支持扩展运算符

用在哪儿

可变参数个数的函数调用

functionpush(array, ...items){    array.push(...items);  }functionadd(...vals){letsum=0;for(leti=0;i

更便捷的数组合并

letarr1 = [1,2];letarr2 = [5,6];letnewArr = [20];//es5 旧写法newArr = newArr.concat(arr1).concat(arr2);//[20,1,2,5,6]console.log(newArr);//es6 使用扩展运算符newArr = [20,...arr1,...arr2];//[20,1,2,5,6]console.log(newArr);

替代es5的apply方法

// ES5 的写法  functionf(x, y, z){// ...  }varargs = [0,1,2];  f.apply(null, args);// ES6 的写法  functionf(x, y, z){// ...  }varargs = [0,1,2];  f(...args);

求最大值Math.max()

// ES5 的写法  Math.max.apply(null, [14,3,77])// ES6 的写法  Math.max(...[14,3,77])//  等同于  Math.max(14,3,77);

通过push函数,将一个数组添加到另一个数组的尾部

// ES5 的写法  vararr1 = [0,1,2];vararr2 = [3,4,5];Array.prototype.push.apply(arr1, arr2);// ES6 的写法  vararr1 = [0,1,2];vararr2 = [3,4,5];  arr1.push(...arr2);

新建Date类型

// ES5  new(Date.bind.apply(Date, [null,2015,1,1]))// ES6  newDate(...[2015,1,1]);

与解构赋值结合,生成新数组

// ES5  a =list[0], rest =list.slice(1)// ES6  [a, ...rest] =list下面是另外一些例子。const[first, ...rest] = [1,2,3,4,5];  first// 1  rest// [2, 3, 4, 5]  const[first, ...rest] = [];  first// undefined  rest// []:  const[first, ...rest] = ["foo"];  first// "foo"  rest// []

将字符串转为真正的数组

[...'hello']  // ["h","e","l","l","o"]

将实现了 Iterator 接口的对象转为数组

varnodeList =document.querySelectorAll('div');vararray = [...nodeList];

你可能感兴趣的:(ES6 扩展运算符 三个点(...))