ES6 学习之 symbol

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_20087231/article/details/83339410

ES5的对象属性名都是字符串,容易造成属性名冲突

ES6引入新的原始数据类型Symbol,表示独一无二的值

对象的属性名可以有两种类型,一是字符串,二是Symbol类型

        // 定义
        let str1 = Symbol();
        let str2 = Symbol();
        console.log(str1 === str2);
        console.log(typeof str1);
        // 描述
        let str3 = Symbol('name');
        let str4 = Symbol('name');
        console.log(str3 === str4);
        // 对象的属性名
        const obj = {};
        // obj.name = '张三';
        // obj.name = '李四';
        // console.log(obj); // 李四
        obj[Symbol('name')] = '张三';
        obj[Symbol('name')] = '李四';
        console.log(obj); //{Symbol(name): "张三", Symbol(name): "李四"}

猜你喜欢

转载自blog.csdn.net/qq_20087231/article/details/83339410