<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>ES6--扩展运算符(...)和rest运算符</title> </head> <body> <script> /* ES6--扩展运算符(...)和rest运算符 */ /* 1.扩展运算符(...) 1.1 扩展运算符 1.2 运用 2.rest运算符 2.1 rest运算符 2.2 运用 */ // 1.扩展运算符(...) // 1.1 扩展运算符 /* 扩展运算符(...)用于将一个数组或类数组对象转换为逗号分隔的值序列。 它的基本用法是拆散数组和字符串。 */ const arr=[1,2,3,4,5,6]; console.log(...arr);//1 2 3 4 5 6 const str='string'; console.log(...str);//s t r i n g // 1.2 运用 // 1.2.1 替代apply()函数 /* 原: let arr=[1,2,3,4,5,6]; console.log(Math.max.apply(null,arr));//6 */ console.log(Math.max(...arr));//6 // 1.2.2 替代concat()函数合并数组 /* 原:let arr1=[1,2,3]; let arr2=[4,5,6]; console.log(arr1.concat(arr2)); */ let arr1=[1,2,3]; let arr2=[4,5,6]; console.log([...arr1,...arr2]);//[1, 2, 3, 4, 5, 6] //... // 2.rest运算符 // 2.1 rest运算符 /* rest运算符(...)同样用3个点表示,其作用与扩展运算符相反, 用于将以逗号分隔的值序列转换为数组。 */ // 2.2 运用 //2.2.1 rest运算符与解构组合使用 let arr3=['a','b','c','d']; let [arg1,...arg2]=arr3; console.log(arg1);//a console.log(arg2);//['b', 'c', 'd'] //2.2.2 rest运算符代替arguments处理函数参数 /* function foo(){ for(let arg of arguments){ console.log(arg); } } foo('a','b','c','d');//a b c d */ function foo(...args){ for(let arg of args){ console.log(arg); } } foo('a','b','c','d');//a b c d // ... </script> </body> </html>