深入浅出ES6教程『扩展运算符』

大家好,本人名叫苏日俪格,大家叫我 (格格) 就好,在上一章节中我们学到了箭头函数的用法,下面我们一起来继续学习扩展运算符:

... 代表着扩展运算符或Rest(剩余)运算符
废话不多说,直接带大家看几个例子:

// 当传入的参数不确定或者多个的时候,就可以当做arguments来使用
function show(...a){
console.log(a); // [14, 12, 54, 33, 22]
}
show(14,12,54,33,22);

此外扩展运算符还可以解决数组的引用的问题:

let a = [14,12,54,33,22];
let b = a; // 相当于copy
a.push(44);
console.log(a); // [14, 12, 54, 33, 22, 44]
console.log(b); // [14, 12, 54, 33, 22, 44]

上面这个例子说明了b是a的一个引用,也就是说二者所在的内存是同一个,要想改变a不影响b的话,就要开辟一个新内存,解决方式:

let a = [14,12,54,33,22];
let b = [...a];
a.push(44);
console.log(a); // [14, 12, 54, 33, 22, 44]
console.log(b); // [14, 12, 54, 33, 22]

扩展运算符还可以用来数组的排序,此排序并不是什么大小排序,而是按照每一位的首位数字进行排序的,第一位相同就看第二位,依次排列,和字典式排序相似,看下面的例子:

function orderBy(...a){
return a.sort();
}
console.log(orderBy(51,12,7,34,3)); // [12, 3, 34, 51, 7]

let arr = ['aaa','bbb','ccc'];
let arr2 = "aabbcc";
console.log(arr); // ["aaa", "bbb", "ccc"]
console.log(...arr); // aaa bbb ccc
console.log(arr2); // aabbcc
console.log(...arr2); // a a b b c c

综上所述,…可以完成字符串和数组之间的转换

小白:那个Rest运算符又是什么呢?

请看下面的这个例子:

function show(a,...b){
console.log(a); // 51
console.log(b); // [12, 7, 34, 3]
}
show(51,12,7,34,3);

看完了这个例子懂了吧,就是说前面的参数一一对应,后面的那个…b就代表剩下的参数,因为是剩余参数所以这个剩余运算符要放在最后的位置,因此有的人又称为剩余运算符

关于扩展运算符我们都已经了然于心,预知数组的循环如何,请听下回分解 (^∀^)/~~~

本文的所有内容均是一字一句敲上去的,希望大家阅读完本文可以有所收获,因为能力有限,掌握的知识也是不够全面,欢迎大家提出来一起分享!谢谢O(∩_∩)O~

欢迎来我的GitHub,喜欢的可以star,项目随意fork,支持转载但要下标注,同时恭候:我的博客

等一下( •́ .̫ •̀ ),我还有最后一句话:
这里虽然没有都市的繁华,
也没有山林的鸟语花香,
只有一片如水的宁静,
古人云:
既来之则安之,
既然来到了这里,
就可以静心休憩你的灵魂,
调养你疲惫的心,
再见…