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 相关文章推荐
Jquery实现搜索框提示功能示例代码
Aug 13 Javascript
node.js不得不说的12点内容
Jul 14 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
Dec 04 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
Jun 23 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
Oct 10 Javascript
JavaScript实现倒计时跳转页面功能【实用】
Dec 13 Javascript
JavaScript字符串检索字符的方法
Jun 23 Javascript
jQuery简介_动力节点Java学院整理
Jul 04 jQuery
vue this.reload 方法 配置
Sep 12 Javascript
快速对接payjq的个人微信支付接口过程解析
Aug 15 Javascript
JavaScript对象原型链原理解析
Jan 22 Javascript
js实现前端界面导航栏下拉列表
Aug 27 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
用Flash图形化数据(一)
2006/10/09 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
JS函数验证总结(方便js客户端输入验证)
2010/10/29 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
2014/02/04 Javascript
一个简单的全屏图片上下打开显示网页效果示例
2014/07/08 Javascript
jQuery中[attribute]选择器用法实例
2014/12/31 Javascript
jQuery实现简单下拉导航效果
2015/09/07 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
2015/12/22 Javascript
浅析JS运动
2015/12/28 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
你了解vue3.0响应式数据怎么实现吗
2019/06/07 Javascript
python模拟鼠标拖动操作的方法
2015/03/11 Python
python搭建虚拟环境的步骤详解
2016/09/27 Python
对python3中的RE(正则表达式)-详细总结
2019/07/23 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
pycharm实现在虚拟环境中引入别人的项目
2020/03/09 Python
Python通过Pillow实现图片对比
2020/04/29 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
优秀员工获奖感言
2014/03/01 职场文书
优秀实习生感言
2014/03/01 职场文书
初中军训感想300字
2014/03/05 职场文书
开学典礼策划方案
2014/05/28 职场文书
品牌推广活动策划方案
2014/08/19 职场文书
征用土地赔偿协议书
2014/09/26 职场文书
个人贷款收入证明
2014/10/26 职场文书
学校端午节活动总结
2015/02/11 职场文书
2015年小学总务工作总结
2015/07/21 职场文书
2016高考寄语或鼓励的话语
2015/12/04 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书
Python采集爬取京东商品信息和评论并存入MySQL
2022/04/12 Python