ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

2/27 《JavaScript高级程序设计》学习随笔丨 Symbol 与 正则表达式

2021-02-27 21:05:22  阅读:176  来源: 互联网

标签:... 27 String 正则表达式 Symbol JavaScript match 其实


写在前面

  目前还在看基础章

  遇到了 Symbol 类型

  本以为 Symbol 是用来解决 私有变量的问题 

  但是 Symbol 还是访问的到

  然后继续看

  发现 一些挂载在 原型链 上的方法其实大多和 常用内置符号有关

  比如 Symbol.hasInstanceof 和 isinstanceof 操作符有关

  当然 下面只是解释一下 Symbol 关于 正则表达式的地方


例子

  如果要用 .match 方法

  我们得 传入一个 正则表达式 RegExp 对象

  ( 下面的 g 的意思是全局匹配 与 普通匹配 有一点区别 返回值 不一样 )

  

 

  那么 我想要通过 .match 返回一些其他东西 有么有可能呢

  我非得要封装一个 函数吗

用Symbol "重写" 

  正如上面说的,其实我们可以做到

  在 js 红宝书 上有关 Symbol 和 正则表达式 其实概括来说就是

  1. String.prototype.match() 中( 还可以是 replace , split ... )  接受的参数 默认是 正则表达式 如果不是 则会 转换成正则表达式 

  2. 正则表达式上面默认有 Symbol.match 的定义,而调用 String.prototype.match() 其实就是调用 Symbol.match 这个方法 ( 个人理解 )

  于是乎 我们举个例子

  对于上面的第一点

  

 

  可以看到 输出 就证明 有这个 Symbol 函数( Symbol 使用[ ] 来访问 )

  对于第二点 就是可以重写的方法 我这里用 replace 解释一下

  

 

   

  其实 整个关系 有点像迭代

  ...

  当然 你可以 return 一些奇奇怪怪的东西

  

 

 总结

  继续看书

 

标签:...,27,String,正则表达式,Symbol,JavaScript,match,其实
来源: https://www.cnblogs.com/WaterMealone/p/14457137.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有