ES6概念 ymbol.for()方法


Posted in Javascript onDecember 25, 2016

Symbol.for()方法:
使用Symbol()方法可以创建一个Symbol类型的值。
代码实例如下:

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

即便是键值相同两个Symbol类型的值也是不相同的。
更多关于Symbol的内容可以参阅ES2015 Symbol一章节。
使用Symbol.for()方法也可以创建一个Symbol类型的值,但是此方法和Symbol()的一个重要区别是,它不会重复创建具有相同键的值,也就是说此方法在创建一个值之前,首先会搜索是否已经具有指定键的Symbol类型的值,如果有则返回这个Symbol值,否则新创建一个Symbol值。
代码实例:

let one = Symbol.for("三水点靠木");
let two = Symbol.for("三水点靠木");
console.log(typeof one);
console.log(one == two);

第一次调用Symbol.for()方法会创建一个键值为"三水点靠木"的Symbol类型的值。
第二次调用的时候会搜索是否已经存在以"三水点靠木"为键的Symbol类型的值,如果存在就返回这个Symbol值。

let one = Symbol.for();
let two = Symbol.for();
console.log(typeof one);
console.log(one == two);

不传递参数也是同样的道理。

let one = Symbol("三水点靠木");
let two = Symbol.for("三水点靠木");
console.log(one == two);

Symbol.for()创建的值会被登记在全局环境中供搜索,而Symbol()创建的值不会,所以Symbol.for("三水点靠木")依然会新创建一个Symbol值,而不是返回Symbol("三水点靠木")创建的值。

Javascript 相关文章推荐
js 多种变量定义(对象直接量,数组直接量和函数直接量)
May 24 Javascript
javascript学习笔记(一) 在html中使用javascript
Jun 18 Javascript
Javascript浅谈之引用类型
Dec 18 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
May 15 Javascript
JS给swf传参数的实现方法
Sep 13 Javascript
js给table赋值的实例代码
Oct 13 Javascript
详解JavaScript中的属性和特性
Dec 08 Javascript
jQuery Validation Engine验证控件调用外部函数验证的方法
Jan 18 Javascript
AngularJS ui-router (嵌套路由)实例
Mar 10 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
Jan 16 Javascript
Vue 图片压缩并上传至服务器功能
Jan 15 Javascript
React forwardRef的使用方法及注意点
Jun 13 Javascript
ES2015 Symbol 一种绝不重复的值
Dec 25 #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
You might like
PHP验证信用卡卡号是否正确函数
2015/05/27 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
SUN的《AJAX与J2EE》全文译了
2007/02/23 Javascript
this和执行上下文实现代码
2010/07/01 Javascript
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
2010/09/14 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
2014/09/01 Javascript
js实现分享到随页面滚动而滑动效果的方法
2015/04/10 Javascript
javascript之Array 数组对象详解
2016/06/07 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
CodeMirror js代码加亮使用总结
2017/03/25 Javascript
python爬取安居客二手房网站数据(实例讲解)
2017/10/19 Javascript
js字符串倒序的实例代码
2018/11/30 Javascript
vue中组件通信的八种方式(值得收藏!)
2019/08/09 Javascript
Postman动态获取返回值过程详解
2020/06/30 Javascript
[48:11]完美世界DOTA2联赛 Magma vs GXR 第二场 11.07
2020/11/10 DOTA
python网络编程示例(客户端与服务端)
2014/04/24 Python
浅谈python可视化包Bokeh
2018/02/07 Python
tensorflow使用神经网络实现mnist分类
2018/09/08 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
详解python logging日志传输
2020/07/01 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
2020/08/05 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
Perfumetrader荷兰:香水、化妆品和护肤品在线商店
2017/09/15 全球购物
澳洲的服装老品牌:SABA
2018/02/06 全球购物
阿迪达斯香港官网:adidas香港
2019/11/09 全球购物
酒店管理专业学生求职信
2013/09/27 职场文书
自我评价格式
2014/01/06 职场文书
实习生的自我评价
2014/01/08 职场文书
数控专业大学毕业生职业规划范文
2014/02/06 职场文书
大学生活动策划方案
2014/02/10 职场文书
优秀员工演讲稿
2014/05/19 职场文书
团队拓展活动方案
2014/08/28 职场文书
教师考核表个人总结
2015/02/12 职场文书
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python