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 相关文章推荐
通用javascript脚本函数库 方便开发
Oct 13 Javascript
jQuery 定时局部刷新(setInterval)
Nov 19 Javascript
jQuery判断元素是否存在的可靠方法
May 06 Javascript
jQuery提示插件alertify使用指南
Apr 21 Javascript
Node.js检测端口(port)是否被占用的简单示例
Sep 29 Javascript
Javascript中内建函数reduce的应用详解
Oct 20 Javascript
jQuery如何跳转到另一个网页 就这么简单
Dec 28 Javascript
Vue数据驱动模拟实现5
Jan 13 Javascript
JS实现移动端整屏滑动的实例代码
Nov 10 Javascript
layer弹出层父子页面事件相互调用方法
Aug 17 Javascript
微信小程序实现无限滚动列表
May 29 Javascript
Vue的属性、方法、生命周期实例代码详解
Sep 17 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学习笔记之数组篇
2011/06/28 PHP
php的SimpleXML方法读写XML接口文件实例解析
2014/06/16 PHP
php调用新浪短链接API的方法
2014/11/08 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
JavaScript与DropDownList 区别分析
2010/01/01 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
网页下载文件期间如何防止用户对网页进行其他操作
2014/06/27 Javascript
在JS数组特定索引处指定位置插入元素
2014/07/27 Javascript
javascript 回调函数详解
2014/11/11 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
moment.js轻松实现获取当前日期是当年的第几周
2015/02/05 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
AngularJS基础 ng-href 指令用法
2016/08/01 Javascript
浅谈jQuery中hide和fadeOut的区别 show和fadeIn的区别
2016/08/18 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
angular ngClick阻止冒泡使用默认行为的方法
2016/11/03 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
2017/06/26 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
2017/11/30 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
js实现导航跟随效果
2018/11/17 Javascript
Vue之beforeEach非登录不能访问的实现(代码亲测)
2019/07/18 Javascript
通过js示例讲解时间复杂度与空间复杂度
2019/08/06 Javascript
vue页面更新patch的实现示例
2020/03/25 Javascript
使用Python的Supervisor进行进程监控以及自动启动
2014/05/29 Python
Python有序字典简单实现方法示例
2017/09/28 Python
python实现数据写入excel表格
2018/03/25 Python
Pytoch之torchvision.transforms图像变换实例
2019/12/30 Python
python 生成正态分布数据,并绘图和解析
2020/12/21 Python
HTML5 Web Database 数据库的SQL语句的使用方法
2012/12/09 HTML / CSS
简单html5代码获取地理位置
2014/03/31 HTML / CSS
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
制药工程专业毕业生推荐信
2013/12/24 职场文书
应届本科生推荐信范文
2013/12/25 职场文书
2015入党自传书范文
2015/06/26 职场文书