ES6数组模型、对象的解构和函数的特性

本文详细介绍了ES6中数组的解构赋值,包括基本用法、嵌套、忽略、剩余运算符和默认值。接着讨论了对象解构的特性,如嵌套、忽略和剩余运算符。最后,讲解了Symbol函数的独特性质,它确保了唯一性,并展示了如何在对象中使用Symbol作为属性以及如何访问这些私有属性。
摘要由CSDN通过智能技术生成

一、数组的解构

(1)数组的赋值和基本使用

1、基本用法: [a, b, c] = [1, 2, 3]

2、可嵌套:[a1, [b1], c1] = [1, [2], 3]

3、可忽略:[a2, , b2] = [1, 2, 3]

4、剩余运算符: [a3, ...b3] = [1, 2, 3]:剩余的2,3都归b3所有,b3返回一个数组

let [a3, ...b3] = [1, 2, 3];
//由于数组的一一对应,a3的值就为1,其余的2,3都归为b3,并且返回一个数组

5、默认值法:[a4 = 1, b4 = 2] = []

6、字符串的数组模型解构也是可以的
[z, x, c2, v] = "hello"
与其字符一一对应,相当于是循环输出

 let [z, x, c2, v] = "hello";
//输出的值就只有'h','e','l','l',剩余的值就会直接忽略

(2)、数组如果解构不成功,则会返回undefined

二、对象的解构

1、可嵌套

 let {
            foo,
            har
        } = {
            foo: "Tom",
            har: "bbb"
        }

2、可忽略。与其数组是一一对应的

3、剩余运算

let {
           a,
            b,
            ...rest
        } = {
            p: 1,
            b: 2,
            e: 3,
            h: 4
        }

{a,b,...rest} = {p: 1,b: 2,e: 3,h: 4},其值和属性名必须一一对应,不然就undefined,
...rest:剩余运算符,就是把这之中的所有未背赋值的都归为其所有

三、Symbol函数

其为唯一性的函数,使用了Symbol函数,不能使用点语法
使用中括号链接
const PEO_NAME = Symbol()
        const PEO_AGE = Symbol()
        let obj = {
            [PEO_NAME]: "一斤代码"
        }
        obj[PEO_AGE] = "18"
        console.log(obj[PEO_NAME])
        console.log(obj[PEO_AGE])
        let obj1 = {
                [Symbol('name')]: "tom",
                title: "English",
                age: 18
            }
取值,取出定义在变量里的值
Object.keys:只能取出常量或者其他的变量,去取不出定义的Symbol()里面定义的私有变量
Object.getOwnPropertySymbol()方法,只能取出定义在里面的私有变量
Reflect.ownKeys()可以取出所有的变量

const PEO_NAME = Symbol()
        const PEO_AGE = Symbol()
        let obj = {
            [PEO_NAME]: "一斤代码"
        }
        obj[PEO_AGE] = "18"
        console.log(obj[PEO_NAME])
        console.log(obj[PEO_AGE])
        let obj1 = {
                [Symbol('name')]: "tom",
                title: "English",
                age: 18
            }
 console.log(Object.keys(obj1));
        console.log(Object.getOwnPropertySymbols(obj1));
        console.log(Reflect.ownKeys(obj1));

希望以上的对你有所帮助,谢谢观看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值