函数与对象的语法糖 笔记

2018-12-12  本文已影响2人  xingkong_s
函数的默认参数
function foo(p1:0,p2=1){
  console.log(p1,p2)
}
foo(2) //2,1
剩余参数

伪数组变为数组

function foo(){
let args  = Array.prototype.slice.call(arguments)
let args = Array.from(arguments)
let args = [...arguments]
}
foo(1,2,3,4,5,6,7,8,9,10)

array2 是array1 的第三项后的几项

let array1 = [1,2,3,4,5,6,7,8,9]
var v[a,b,c,...array2] = array1
console.log(array2)
//那我不用abc怎么写
var [,,,...array2]  =array1
展开操作
[...array] = [1,23,5,7,9]
解构赋值
var [a,b] = [b,a];
[a,b,...array ] = [10,20,30,40,50];
let array3 = [1,2,...array,50]
let frank = {name:1,age:2}
let [name,age] = frank;
[a=1,b=7] = [2] //a = 2 b = 7
function foo(){ return {name:1,age:2,grand:1}}
[a,b] = foo();
[a,,b] = foo();
let {name:hi,age:bye} = frank;
{a = 5,b = 4} = {a:3}
//对象浅拷贝
let obj2 = {...frank}
//对象的合并
let obj3 = {...frank,...foo()}

属性的解构和合构
等号左边是内容解构
等号右边是合起来的内容

对象的属性加强
var obj1 = {
    "x":x,
    "y":y
}
-----
var obj2 = {x,y}

对象动态的key值(将动态的值用[]括起来)

let key = "x"
let value = "y"
let obj = {}
obj[key] = value  //{x:y}
-----
//简化为
let obj1 = {
[key] = value
} //{x:y}

函数的简化:

let obj1 = {name:1,age:2}
let obj = {
   z:1,
   x,
   y,
   ...obj1, //复制obj1的值
   sayHi(name='jack'){},
   sayBye(){},
   sayGoodBye(){
     console.log('good Bye')
   }
}
简易深拷贝

Json.parse(Json.stringify(data))
这个方法不适用与复杂对象
如果这个对象满足以下条件

上一篇下一篇

猜你喜欢

热点阅读