001|JavaScript ES6新特性之Symbol

栏目: JavaScript · 发布时间: 7年前

内容简介:001|JavaScript ES6新特性之Symbol

Symbol

symbol是JavaScript中的一种基础数据类型(primitive types)。而Symbol()是一个函数,用于创建symbol类型的对象。

Symbol([description]) // description参数只是一个便于调试的标记,没有其它任何用处。

Symbol创建symbol类型对象时不可与new共用,直接调用即可:

var symbolObject1 = Symbol() var symbolObject2 = new Symbol() // 此行报异常,Symbol is not a constructor

Symbol()函数 每次调用都会创建一个独一无二的symbol类型对象

var result = (Symbol('David') == Symbol('David')) console.log(result) // 输出false

将symbol对象作为对象属性key的时候,这个属性也是隐藏的(non-enumerable),无法用for...in来遍历。通过一段代码来理解一下:

var symKey = Symbol.for('David')  var student={} student[symKey]='James'  console.log(student[symKey]) for(var item in student){     console.log(student[item]) }

全局符号表

全局符号表(Global Symbol Registry),是一个key-value结构,key是任意对象,value是symbol对象。可以通过Symbol.for、Symbol.keyFor两个函数来操作全局符号表。

Symbol.for(key);

在全局符号表中寻找名字为key的symbol对象,如果找到则返回这个对象;如果没找到,则创建一个新的symbol对象。

说简单一点,对于Symbol.for 只要参数key相同,那么回返的symbol对象就相同 。通过下面的例子来理解一下。

Symbol.for('David') var result = (Symbol.for('David')==Symbol.for('David')) console.log(result) // 输出 true

Symbol.keyFor是Symbol.for的逆操作。

Symbol.keyFor(sym)

sym是一个symbol对象,根据sym返回对应的key。如果不存在,则返回undefined.

var symObj = Symbol.for('David') console.log(Symbol.keyFor(symObj)) // 输出 David

其它Symbol操作

Object.getOwnPropertySymbols()可以返回一个对象中所有的symbol对象key。

Object.getOwnPropertySymbols(obj)

好了,这一节就到这里。Symbol是ES6新特性中的基础内容,希望你都掌握了。

什么是Iterable Protocol & Iterator Protocol?

请继续关注我的课程,我将在后续课程中帮大家依次解答上述问题。

如果你热爱计算机,希望一起切磋交流,欢迎加我为好友!

001|JavaScript ES6新特性之Symbol

我的微信


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据挖掘导论

数据挖掘导论

(美)Pang-Ning Tan、Michael Steinbach、Vipin Kumar / 机械工业出版社 / 2010-9 / 59.00元

本书全面介绍了数据挖掘的理论和方法,着重介绍如何用数据挖掘知识解决各种实际问题,涉及学科领域众多,适用面广。 书中涵盖5个主题:数据、分类、关联分析、聚类和异常检测。除异常检测外,每个主题都包含两章:前面一章讲述基本概念、代表性算法和评估技术,后面一章较深入地讨论高级概念和算法。目的是使读者在透彻地理解数据挖掘基础的同时,还能了解更多重要的高级主题。 本书特色 ·包含大量的图表、......一起来看看 《数据挖掘导论》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

随机密码生成器
随机密码生成器

多种字符组合密码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具