ES6--Symbol

Symbol的概念

ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。它是JavaScript语言的第七种数据类型,前六种是:Undefined、Null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)

{
    //声明
    let a1=Symbol();
    let a2=Symbol();
    console.log(a1===a2);
    //false
    let a3=Symbol.for('a3')
    let a4=Symbol.for('a3')
    console.log(a3===a4)
    //true
}
{
    let a1=Symbol.for('abc');
    let obj={
        [a1]:'123',
        "abc":"345",
        "c":"456"
    }
    console.log(obj);
    //{abc: "345", c: "456", Symbol(abc): "123"}  注:for in和let of拿不到Symbol定义的key值
    //可以通过Object.getOwnPropertySymbols(obj)得到
    Reflect.ownKeys(obj).forEach(function(item){
        console.log(item)
    })
    //abc
    //c
    //Symbol(abc)
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.概述 ES5的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象...
    赵然228阅读 4,208评论 2 10
  • 1.概括 ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对...
    不去解释阅读 3,483评论 0 1
  • 概述 ES5中的对象属性名都是字符串,如果我们使用了一个他人提供的对象,又需要为该对象添加新的方法(mixin模式...
    我是刘高兴阅读 3,118评论 0 0
  • Symbol:一种新的原始数据类型,表示独一无二的值。 引入Symbol的原因:ES5 的对象属性名都是字符串,这...
    Rose_yang阅读 2,701评论 0 0
  • 我有严重的强迫症,也有是很多小怪癖。一些人不喜欢的事情反而在我身上却很有趣。比如吃饭,我倒是享受起了自己吃饭走路,...
    至此今夕阅读 3,352评论 6 4

友情链接更多精彩内容