SOURCE

// 函数扩展中 rest参数
// ES6 引入了 rest 参数(形式为“ ... 变量名),用于获取函数的多余参数,这样就不需要
// 使用 arguments 对象了 rest 参数搭配的变量是一个数组,该变量将多余的参数放入其中
// rest 参数中的变量代表一个数组,所以数组特有的方法都可以用于这个变量 
//下面是 rest 参数代替 arguments 变量的例子
// es5 arguments 变量的写法
function sortNumbers() { 
    return Array.prototype.slice.call(arguments).sort();
} 
//es6 rest 参数的写法  numbers是一个数组 所以可以直接使用数组方法sort
// const sortNumbers = (...numbers) => numbers.sort();


// 数组扩展 
//将一个数组转为用逗号分隔 参数序列
//该运算符主要用于函数调用
console.log (...[1,2,3])

function push(array,...items) { 
    array.push (...items);
}
let tmp = []
push(tmp,1,2,3)
console.log(tmp)

//替代数组apply  不需要apply方法了
function f(x,y,z) {
    console.log(x+y+z)
}
var args = [1,2,3]
f.apply(null,args)  // apply方法
// f(...args)   //es6方法

//扩展运算符 应用
//合并数组

// let m = [1,2,3].concat(['a','b']);
let m = [1,2,3,...['a','b']];
console.log(m)
//与解构赋值结合
var list = [1,2,3,4,5]
// a1= list[0], b1= list.slice(1) //es5写法
//如果将扩展运算符用于数组赋值,则只能将其放在参数的最后一位,否则会报错。
let [a1,...b1] = [1,2,3,4,5]
console.log(a1,'---',b1)
//扩展运算符还可以将字符串转为真正的数组。
let str = [...'hello']
console.log(str)

// 数组的方法 find keys values includes


// Array.prototype.includes 方法返回一个布尔值,表示某个数组是否包含给定的值,
// 与字符串的 includes 方法类似。es2016 引入了该方法。

let t = [1,2,3,4]
t.includes(2)
console 命令行工具 X clear

                    
>
console