es6 新增数据类型Symbol

Posted starof

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了es6 新增数据类型Symbol相关的知识,希望对你有一定的参考价值。

es6在string number boolean null undefined object之外又新增了一种Symbol类型。

Symbol意思是符号,有一个特性—每次创建一个Symbol值都是不一样的。

symbol是程序创建并且可以用作属性键的值,并且它能避免命名冲突的风险。

//        var a=new Symbol(); //注意不是用new创建
        var a=Symbol();
        var b=Symbol();
        console.log(a===b); //false

用处:赋值对象的属性被修改。

具体:把Symbol作为key,下游的人就没法覆盖key了。

//file1.js
let name=Symbol();
{
    person={};
    person[name]=\'File1\';
    console.log("person[name]",person[name]);
}
//file2.js
{
    let name=Symbol();
    person[name]=\'File2\';
    console.log("person[name]",person[name]);//局部的修改
}
console.log("person[name]",person[name]);
console.log("person:",person);

参考:

es6-in-depth-symbols 

 

 

 本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:http://www.cnblogs.com/starof/p/6919752.html有问题欢迎与我讨论,共同进步。

 

以上是关于es6 新增数据类型Symbol的主要内容,如果未能解决你的问题,请参考以下文章

三阶段课程——Day02(ES6简介let和const)(数据类型和数据结构:字符串扩展Symbol数组新增方法对象新增SetMap数组解构对象解构...运算符)

ES6-07:Symbol数据类型

ES6中的基本数据类型

ES6-12.Symbol

6.Symbol

6.Symbol