Symbol学习笔记

一.Symbol是什么

typeof Symbol() === 'symbol',symbol是js中第7种基本类型(本来就有的6种是null, undefined, Number, Boolean, Object, String),不是字符串也不是对象

作用:symbol用来避免命名冲突,解决了篡改(添加属性)原生对象的后遗症,不用担心属性名以后和原生属性名或者其它类库操作冲突

二.语法

获取Symbol有3种方式,如下:

1.Symbol(desc)

返回symbol,desc可选,symbol.toString()返回`Symbol(${desc})`,例如:

var obj = {

    a: 1

};

// 不用new,Symbol不是构造器

var safeKey = Symbol();

obj[safeKey] = 'value';

console.log(obj[safeKey]);  // value

var anotherSafeKey = Symbol('isAnimActive');

console.log(anotherSafeKey);    // Symbol(isAnimActive)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 6,421评论 1 10
  • 一、let 和 constlet:变量声明, const:只读常量声明(声明的时候赋值)。 let 与 var 的...
    dadage456阅读 4,121评论 0 0
  • ECMAScript简称就是ES,你可以把它看成是一套标准,JavaScript就是实施了这套标准的一门语言 现在...
    最美时光A阅读 2,795评论 0 0
  • 本人是android开发的,由于最近React Native的火热,再加上自己完全不懂JS的语法,俗话说的好"落后...
    Bui_vlee阅读 2,350评论 0 0
  • 布尔操作符!false //true!"blue" //false!0 //true!NaN //true!...
    左钱钱阅读 3,110评论 0 0