...rest and ...spread data deconstruction

…rest和…spread

  ...rest:将所有剩余的参数(’其余的参数‘)收集到一个数组中
  ...spread:将迭代器张开为一个或多个参数

 rest:
       注意:rest必须是唯一参数或是最后一个参数,不可以是第一个
 spread:
       注意:spread可以在任何位置使用

Example:

function sum(...args){
    
    
    console.log(args)
}
sum(1,2,3) //[1,2,3]

//如果传入一个数组
sum([1,2,3]) //[[1,2,3]]
//使用spraed 来扁平化数组
sum(...[1,2,3]) //[1,2,3]

Data deconstruction


//数组解构
[a,b]=[10,20]

//默认关键字var
[a] = [2]

//let定义不可以作为window对象
let [a] =[2]
console.log(window.a)  //undefined

//使用 ...rest解构
[a,...rest] = [30,40,50]
console.log(rest) //[40,50]

//直接从对象内部属性中提取
let deep ={
    
    
    fruit:{
    
    
        name:"zhangsan"
        ages:20
    }
}
let {
    
    name ,ages} = deep.fruit //name:zhangsan   ages:20

//解构与重命名同时
let {
    
     auto : car } = {
    
     auto : 'zhangsan'}
console.log(auto) //错误defined
console.log(car) //zhangsan

//使用spread合并对象,不仅仅是浅复制,也可以复制嵌套属性
let a = {
    
     p:1 ,m:()=>{
    
    } , nest :{
    
    nest:eggs:10}}
let b = {
    
     r:3 , n:()=>{
    
    }}
let c = {
    
     ...a ,...b} 
//{ p: 1, m: () => { }, nest: { nest: { eggs: 10 } }, r: 3, n: () => { } }

使用spread合并数组
let a = [1,2]
let b = [3,4]
let c = [...a,...b] //[1,2,3,4]

Guess you like

Origin blog.csdn.net/skr_Rany/article/details/111195847