首页 > 其他 > 详细

ES6-07:Symbol数据类型

时间:2017-12-26 00:03:00      阅读:266      评论:0      收藏:0      [点我收藏+]

ES5中规定JavaScript有6种数据类型:Undefined、Null、String、Boolean、Number、Object;ES6新增加一种数据类型Symbol.

1.symbol定义

  • 原始数据类型:不是对象,不能使用new命令创建,不能添加属性;
  • 表示独一无二的值:
Symbol()===Symbol();//false
Symbol(‘foo‘)===Symbol(‘foo‘);//false
Symbol.for(‘bar‘)===Symbol(‘bar‘);//true
  • symbol值作为属性名时,该属性是公开属性,非私有;
  • symbol作为属性时,不可被遍历;

2. 作用

  • 消除魔术字符串:消除代码内部强耦合;
  • 模块的单利模式:任何时候都返回同一个实例;

    var CAT_KEY=Symbol.for(‘cat‘);
    function Cat(){};
    if(!global[CAT_KEY]){global[CAT_KEY]=new Cat()};

3.内置Symbol值——11个

  • Symbol.hasInstance
  • Symbol.isConcatSpreadable
    -Symbol.species
  • Symbol.match
  • Symbol.replace
  • Symbol.search
  • Symbol.split
  • Symbol.iterator
  • Symbol.toPrimitive
  • Symbol.toStringTag
  • Symbol.unscopable

ES6-07:Symbol数据类型

原文:https://www.cnblogs.com/hbzyin/p/8111770.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!