ES2015 Symbol 一种绝不重复的值


Posted in Javascript onDecember 25, 2016

ES2015 Symbol:
Symbol是ES2015新增的一种值类型数据,表示一种绝不重复的值。
关于数据类型可以参阅javascript引用类型和基本类型详解一章节。

代码实例如下:

let sVal = Symbol();
console.log(typeof sVal)

上面的代码的输出值是"symbol"。
使用Symbol()函数可以创建一个symbol类型值。
特别说明:前面不能使用new,否则会报错;因为Symbol是一种值类型数据,这也是很好理解的。
Symbol()函数可以接受一个字符串作为参数,用作Symbol值的描述,也可以理解为键(key),代码实例如下:

let s1 = Symbol("三水点靠木");
let s2 = Symbol("ww.3water.com";

键的作用就是为了便于区分不同的Symbol类型的值,代码实例如下:

let s1 = Symbol("三水点靠木");
let s2 = Symbol("3water.com");
console.log(s1.toString());
console.log(s2.toString());

通过键就可以比较方便的区分两个Symbol值。
键相同的两个Symbol值并不相同:

let s1 = Symbol("三水点靠木");
let s2 = Symbol("三水点靠木");
console.log(s1 == s2);

上面两个Symbol值是不相等的。
Symbol值不能够被隐式转换为字符串类型,代码实例如下:

let s = Symbol("三水点靠木");
//报错
`antzone ${sym}`
//报错
"antzone" + sym

上面代码试图将Symbol隐式转换字符串会报错。
但是我们可以显式将其转换为字符串类型,代码实例如下:

let s = Symbol("三水点靠木");
console.log(s.toString());

Symbol类型方法和属性:
方法列表如下:

方法 描述
Symbol.for() 创建一个Symbol类型的值,但是不会重复创建键值相同的Symbol类型的值。
Symbol.keyFor() 获取对应Symbol值的键。
Symbol.prototype.toString() 返回当前symbol对象的字符串表示。

属性列表如下:
方法 描述
Symbol.iterator 内置Symbol值,作为对象属性会指向一个遍历器接口。
Symbol.match
Symbol.prototype
Symbol.species
Symbol.toPrimitive
Javascript 相关文章推荐
QQ邮箱的一个文本编辑器代码
Mar 14 Javascript
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
Nov 25 Javascript
jquery延迟加载外部js实现代码
Jan 11 Javascript
js 判断文件类型并控制表单提交示例代码
Nov 14 Javascript
让JavaScript和其它资源并发下载的方法
Oct 16 Javascript
javascript prototype原型详解(比较基础)
Dec 26 Javascript
js实现tab选项卡切换功能
Jan 13 Javascript
jQuery正则验证注册页面经典实例
Jun 10 jQuery
利用angular、react和vue实现相同的面试题组件
Feb 19 Javascript
laravel-admin 与 vue 结合使用实例代码详解
Jun 04 Javascript
微信小程序自定义模态弹窗组件详解
Dec 24 Javascript
JavaScript展开运算符和剩余运算符的区别详解
Feb 18 Javascript
基于Javascript实现的不重复ID的生成器
Dec 25 #Javascript
JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
Dec 25 #Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
Dec 25 #Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
Dec 25 #Javascript
AngularJS入门教程之Helloworld示例
Dec 25 #Javascript
jQuery实现圣诞节礼物动画案例解析
Dec 25 #Javascript
AngularJS打开页面隐藏显示表达式用法示例
Dec 25 #Javascript
You might like
PHP变量的作用范围实例讲解
2020/12/22 PHP
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
倒记时60刷新网页的js代码
2014/02/18 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
2014/07/17 Javascript
jquery实现焦点图片随机切换效果的方法
2015/03/12 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
JavaScript实现cookie的写入、读取、删除功能
2015/11/05 Javascript
JavaScript定义数组的三种方法(new Array(),new Array('x','y')
2016/10/04 Javascript
使用 Node.js 对文本内容分词和关键词抽取
2017/05/27 Javascript
Bootstrap按钮组实例详解
2017/07/03 Javascript
解决VUE中document.body.scrollTop为0的问题
2018/09/15 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
jQuery实现消息弹出框效果
2019/12/10 jQuery
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
详解vue中在父组件点击按钮触发子组件的事件
2020/11/13 Javascript
[02:36]DOTA2混沌骑士 英雄基础教程
2013/11/26 DOTA
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
[04:45]DOTA2-DPC中国联赛正赛 iG vs LBZS 赛后选手采访
2021/03/11 DOTA
python中的__init__ 、__new__、__call__小结
2014/04/25 Python
Python中用字符串调用函数或方法示例代码
2017/08/04 Python
分析python请求数据
2018/08/19 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
Numpy中ndim、shape、dtype、astype的用法详解
2020/06/14 Python
编写python代码实现简单抽奖器
2020/10/20 Python
HTML5自定义属性前缀data-及dataset的使用方法(html5 新特性)
2017/08/24 HTML / CSS
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
网络工程系信息安全技术专业大学生求职信
2013/10/22 职场文书
教师党员思想汇报
2014/01/06 职场文书
校园招聘策划书
2014/01/09 职场文书
人力资源经理的岗位职责范本
2014/02/28 职场文书
干部四风问题整改措施思想汇报
2014/10/13 职场文书
客户经理岗位职责
2015/01/31 职场文书
2015年发展党员工作总结报告
2015/03/31 职场文书
董事长致辞
2015/07/29 职场文书
CSS 文字装饰 text-decoration & text-emphasis 详解
2021/04/06 HTML / CSS
教你怎么用Python实现多路径迷宫
2021/04/29 Python