Java基础、中级、高级、架构面试资料

javascript Symbol 方法汇总

HTML5 herman 2423浏览 0评论
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

最近看到一则笑话。为什么中国最赚钱的两个互联网公司,一个是“专骗女人钱的”,一个是“专骗小孩子钱的”。它们的名字一个叫阿里巴巴,一个叫腾讯。

可见学好互联网技术,能为进最赚钱的公司工作打好基础。本文将详细的讲解 javascript 中新的数据类型 symbol 的方法用法和作用。

javascript es6

Symbol 方法

  • Symbol.for(key):使用给定的key搜索现有符号,如果找到则返回符号。否则将得到一个新的使用给定的key在全局符号注册表中创建的符号。
  • Symbol.keyFor(sym):为给定符号从全局符号注册表中检索一个共享符号键。
  • Symbol.prototype.toSource():返回包含Symbol 对象源码的字符串。覆盖Object.prototype.toSource() 方法。
  • Symbol.prototype.toString():返回包含Symbol描述符的字符串。 覆盖Object.prototype.toString() 方法。
  • Symbol.prototype.valueOf():返回 Symbol 对象的初始值.。覆盖 Object.prototype.valueOf() 方法。
  • Symbol.prototype[@@toPrimitive]:返回Symbol对象的初始值。

对 symbol 使用 typeof 运算符

typeof运算符能帮助你识别(标识)symbol。

typeof Symbol() === 'symbol'
typeof Symbol('foo') === 'symbol'
typeof Symbol.iterator === 'symbol'

Symbol 类型转换

当使用 symbol 值进行类型转换时需要注意一些事情:

  • 尝试将一个 symbol 值转换为一个 number 值时,会抛出一个 TypeError 错误  (e.g. +sym or sym | 0).
  • 使用宽松相等时, Object(sym) == sym returns true.
  • 这会阻止你从一个 symbol 值隐式地创建一个新的 string 类型的属性名。例如,Symbol("foo") + "bar" 将抛出一个 TypeError (can't convert symbol to string).
  • "safer" String(sym) conversion works like a call to Symbol.prototype.toString() with symbols,但是注意 new String(sym) 将抛出异常。

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » javascript Symbol 方法汇总