SOURCE

// rest参数 (将多余的参数放进数组中,一般用于函数中的参数)
function fun(...args){
  console.log(args)  // [1,2,3]
}
fun(1,2,3)

// ... 扩展运算符(rest参数的逆运算,将一个数组转为用逗号分割的参数序列)
let [a,...b]=[1,2,3]
console.log(a,b) // 1,[2,3]  ... 将多余的参数转为数组

// 扩展运算符
// console.log(...[1,2,3,4])
let func = (...items)=>{
   console.log(items) // [7,7,8,9]
}
let arr = [7,7,8,9]
func(...arr)

// 求几个数中的最大值
console.log(Math.max(14,65,23))  // 65
console.log(Math.max(...[14,48,35]))  // 48

// ES5 求最大值 (用apply将数组转为函数的参数)
// Math.max.apply(null,[1,2,3,34]) null表示this指向window
console.log(Math.max.apply(null,[1,2,3,34]))  // 34


// 扩展运算符的扩展
// 一、复制数组 (浅拷贝)
const arr2 = [1,2,3]
const arr3 = [...arr2]
console.log(arr3 === arr2) // false

// 二、合并数组(浅拷贝)
let arr4 = [1,2,3]
let arr5 = [7,8,9]
arr4 = [...arr4,...arr5]
console.log(arr4,'--->arr4')  // [1,2,3,7,8,9]

// 三、扩展运算符 + 解构赋值
let [x,...y] = [6,7,8,9]
console.log(x,y,'--->解构赋值')  // 6,[7,8,9]

// Array.from  Array.of  类数组转为数组


// find  用于找出第一个符合条件的数组成员,如果没有符合条件的成员则返回undefined
let arr6 = [1,2,3,4]
console.log(arr6.find( (i)=> i<2),'--->find') // 1 返回的是本身

// findIndex  用于第一个符合条件的数组成员的位置,如果没有则返回去 -1
let arr7 = [6,7,8,9]
console.log(arr7.findIndex( i=> i>8),'--->findIndex')  // 3 返回的是索引

// includes
console.log([1,2,3].includes(4))  // false


// entries、keys、values 对数组的遍历
for( let val of ['a','b'].keys()) {
    console.log(val)   // 0 1   keys 对键名的遍历
}


for( let val of ['a','b'].values() ) {
    console.log(val)  //  a b   values 对键值的遍历
}

for( let val of ['a','b'].entries() ) {
    console.log(val)  // [0,'a'] [1,'b']   entries 对键值对的遍历
}



console 命令行工具 X clear

                    
>
console