美文网首页前端开发es6入门基础
ES6基础入门教程(三)独一无二的数据类型

ES6基础入门教程(三)独一无二的数据类型

作者: 党云龙 | 来源:发表于2019-10-29 15:35 被阅读0次

    还记得es5里面的数据类型有多少种吗?


    Number String Undefined Null Boolean 一共五种,NaN是数字的一种不属于类型。
    如有人较真的话,其实还有另外三种引用类型,分别是Object,Array,Function。

    新数据类型


    es6中加入了Symbol 数据类型,Symbol表示一个变量是独一无二的。
    他的只有一个唯一的作用,就是在对象中让一个key不会和其他的key重复。

    // Symbol 括号中是对该属性的解释 没有具体作用
    let sex =Symbol("性别");
    let man = {
        age:31,
        sex:"女",
        [sex]:"男"
    }
    // 你把Symbol混入对象以后 会发现遍历是获取不到这个key的
    let key=Object.keys(man)
    // 此时想要获取keys 需要通过Reflect.ownKeys(obj)
    console.log(key);
    // 只能通过对象字面量去获取 由此可见Symbol主要作用在于创建一个对象私有的属性
    // 牛逼的是,你创建的是一个独一无二的值,他不可能跟其他的属性重名
    console.log(man[sex]);
    

    需要说明的是:
    Symbol在map对象中意义不大,因为map对象中的key本来就是唯一不重复的

    let man2 = new Map([
        ["name","dangyunlong"],
        [sex,"man"]
    ])
    // 但是神奇的是,通过map对象创建的却可以获取到,因为在map对象中,
    // key本来就是独一无二的
    //console.log(man2.keys());
    

    另外,如果想要遍历对象的symbol属性,
    可以使用 Object.getOwnPropertySymbols(obj) 方法,返回一个数组,数组中包含所有symbol属性。

    相关文章

      网友评论

        本文标题:ES6基础入门教程(三)独一无二的数据类型

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