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

我的微信


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

查看所有标签

猜你喜欢:

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

自己动手做iOS App

自己动手做iOS App

张子怡 / 电子工业出版社 / 2017-8 / 69.00

《自己动手做iOS App:从设计开发到上架App Store》为想要接触iOS 应用设计、开发的读者提供了由浅入深的详细指导。从iOS 应用制作的步骤是什么,应该使用什么软件,如何发布应用到App Store,到iOS 的设计理念是什么,如何正确书写Swift 语言,再到后端和客户端是如何交互运作的等,本书配合图示,精辟、直观地阐明了iOS 应用制作中的种种疑问。 如果你是一位第一次接触i......一起来看看 《自己动手做iOS App》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

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

RGB HEX 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具