美文网首页
函数与对象的语法糖 笔记

函数与对象的语法糖 笔记

作者: xingkong_s | 来源:发表于2018-12-12 11:46 被阅读2次
    函数的默认参数
    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))
    这个方法不适用与复杂对象
    如果这个对象满足以下条件

    • 这个对象没有复杂对象
      没有日期对象 正则对象 函数 循环引用 所有普通对象之外的对象
    • 这个对象没有undefined
      复杂对象怎么深拷贝 用递归

    相关文章

      网友评论

          本文标题:函数与对象的语法糖 笔记

          本文链接:https://www.haomeiwen.com/subject/sguuhqtx.html