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 相关文章推荐
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
May 21 Javascript
jquery form表单提交插件asp.net后台中文解码
Jun 12 Javascript
bootstrap实现弹窗和拖动效果
Jan 03 Javascript
JS中事件冒泡和事件捕获介绍
Dec 13 Javascript
ajax图片上传,图片异步上传,更新实例
Dec 30 Javascript
JavaScript实现鼠标点击导航栏变色特效
Feb 08 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
Apr 14 Javascript
vue的基本用法与常见指令
Aug 15 Javascript
vue-router配合ElementUI实现导航的实例
Feb 11 Javascript
React如何避免重渲染
Apr 10 Javascript
Vue加载json文件的方法简单示例
Jan 28 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
Oct 22 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操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
javascript 词法作用域和闭包分析说明
2010/08/12 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
2011/09/13 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
2013/11/15 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
2015/03/25 Javascript
jQuery+ajax实现文章点赞功能的方法
2015/12/31 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
Bootstrap Img 图片样式(推荐)
2016/12/13 Javascript
layer弹窗插件操作方法详解
2017/05/19 Javascript
react-router中的属性详解
2017/06/01 Javascript
JavaScript正则表达式函数总结(常用)
2018/02/22 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
2018/03/26 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
python分析apache访问日志脚本分享
2015/02/26 Python
pip matplotlib报错equired packages can not be built解决
2018/01/06 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
tensorflow 动态获取 BatchSzie 的大小实例
2020/06/30 Python
python合并多个excel文件的示例
2020/09/23 Python
Kmeans均值聚类算法原理以及Python如何实现
2020/09/26 Python
HTML5移动端开发遇见的东西
2019/10/11 HTML / CSS
Stefania Mode美国:奢华设计师和时尚服装
2018/01/07 全球购物
幼儿园大班新学期寄语
2014/01/18 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
市场营销策划方案
2014/06/11 职场文书
师德师风的心得体会
2014/09/02 职场文书
高中运动会广播稿
2014/09/16 职场文书
2014年行政工作总结
2014/11/19 职场文书
家长学校教学计划
2015/01/19 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
Python3 类型标注支持操作
2021/06/02 Python
Python实现拼音转换
2021/06/07 Python