• (3)ES6解构赋值-对象篇


    对象的解构赋值(可以不按顺序,但是key必须一样否则为undefined)

    //demo1
    var {name,age} = { name: "Jewave", age:26 };
    console.log(name);  //'jewave'
    console.log(age);  //26
    
    //demo2
    var {id,name,age} = { name: "Jewave", age:26,id:007 };
    console.log(name);  //'jewave'
    console.log(age);  //26
    console.log(id)   //7
    
    //demo3
    var { id: personId, name: personName, age: personAge } = { name: "Jewave", age:26,id:007 };
    console.log(personId); //7
    console.log(personName); //'jewave'
    console.log(personAge); //26
    
    //demo4
    let object = { first: 'Hello', last: 'World' };
    let { first: firstName, last: lastName } = object;
    console.log(firstName); //Hello
    console.log(lastName); //World

    对象解构默认值的条件(对象属性值严格等于undefined,也就是未定义)

    //demo1
    var { x = 3 } = {};
    console.log(x); //3
    
    //demo2
    var { x, y = 5 } = { x: 1 };
    console.log(x); //1
    console.log(y); //5
    
    //demo3
    var { message: msg = "You Are A Person!" } = {};
    consle.log(msg); //"You Are A Person!"
    
    //demo4
    var { x = 3 } = { x: undefined };
    console.log(x); //3
    
    //demo5
    var { y = 3 } = { y: null };
    console.log(y);//null

    已声明变量的解构赋值

    var x;
    {x} = { x: 1 }; // Uncaught SyntaxError: Unexpected token =
    为啥报错,因为{x}被理解成代码块而不是对象所以不能进行解构,
    这时候我们用一个括号将整体括起来就可以。
    
    var x;
    ({x} = { x: 1 });
    console.log(x); //1

    现有对象的方法

    console.log( Math.sin(Math.PI/6) ); //0.49999999999999994
    
    //简化版的写法可读性更棒
    let { sin, cos, tan, cot, PI } = Math;
    console.log( PI ); //3.141592653589793
    console.log( sin(PI/6) ); //0.49999999999999994  
  • 相关阅读:
    视图
    触发器
    DNS
    DHCP
    SSH 详解
    apt-get
    java split
    数组指针 指针数组
    函数指针
    网络协议
  • 原文地址:https://www.cnblogs.com/jewave/p/6238604.html
Copyright © 2020-2023  润新知