ES6语法简介——5、解构赋值(一)

<h1>5、解构赋值(一)</h1>
<div><h3>5.1、对象解构</h3>
    <p>
        <span>在ES6中,对象和数组可以使用解构功能,可以按照一定模式从对象和数组中提取值,对变量进行赋值。对象解构是在一个赋值操作符的左边放置一个对象字面量。</span>
        <br>例:
                let book={
                    title:"九章算术",
                    isbn:"987654321",
                    price:108
                }
                let {title,isbn,price}=book;
                console.log(title);//输出:九章算术
                console.log(isbn); //输出:987654321
                console.log(price);//输出:108
        在例中book.title的值存储在名为title的变量中。
    </p>
    <p>
        <span>注意:如果使用var、let或者const解构声明变量,必须提供初始化程序,即等号右边必须提供值,否则会导致语法错误。</span>
        <br>例:
                var {title,isbn,price};
                let {title,isbn,price};
                const{title,isbn,price};
    </p>
    <p>
        <span>如果变量之前已经声明了,那么需要使用圆括号把整个解构赋值语句包起来。</span>
        <br>例:
                let title,isbn,price;
                ({title,isbn,price})=book;
    </p>
    <p>
        <span>使用解构赋值表达式的时候,如果指定的局部变量名称在对象中不存在,这个局部变量会被赋值为undefined(未定义),可以考虑为这个变量定义一个默认值,在变量名称后面加一个等号和相应的默认值即可。</span>
        <br>例:
                let {title,isbn,salesVolume=0} = book;//上面案例中book对象没有salesVolume属性
    </p>
    <p>
        <span>如果希望再使用解构赋值时,使用与对象属性名不同的局部变量名称,可以采用“属性名:局部变量名”的语法形式。</span>
        <br>例:
                let {title:booktitle,isbn:bookisbn} = book;
//读取title属性的值存储在变量booktitl中,注意右边变量名,左边要读取的对象的属性名。
    </p>
    <p>
        <span>关于嵌套的对象如何通过解构语法提取值:</span>
        <br>例:
                 let book={
                        category:{id:1,name:"web"}}
                let {title,isbn,category:{name:category}} = book;
//在找到book对象的category属性后继续往下找name属性,然后将值赋给category局部变量
    </p>
    <p>
        <span>展开运算符和对象解构赋值</span>
        <br>例:

                 let book={
                    title:"九章算术",
                    isbn:"987654321",
                    price:108
                }

                let {...newbook}=book;
                let {salesVolume}=book;//取出book对象中的salesVolume属性并赋值给salesVolume变量
                console.log(newbook);//输出:book对象
                console.log(salesVolume);//输出:undefined

posted @ 2020-11-10 13:55  0总在1前面  阅读(75)  评论(0)    收藏  举报