前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >正则和TypeScript很重要

正则和TypeScript很重要

作者头像
terrence386
发布2022-07-14 21:43:14
4170
发布2022-07-14 21:43:14
举报

春江潮水连海平,海上明月共潮生。--出自 张若虚的《春江花月夜》

整首诗分三个部分,第一部分写江边美景,第二部分写诗人触景生情,第三部分写离愁别绪。有兴趣的话可以读一读全文体会一下。

关于浏览器插件

由于打卡规则的变化,由之前的企业微信打卡,变成现在PC的一个系统打卡。今天在想是不是也开发一个打卡的插件,支持多系统登录,选择时间段打卡...。

仔细想了想还是算了,以后再说吧。

关于正则表达式

上周写了邮箱助手插件的时候用到了两个库,codemirrormarked。也提到了marked负责将markdown转为html, 但是具体是如何转的?这个是个问题。

于是就把它的代码clone下来,准备花点时间研究一下。然后发现里面有很多正则表达式,比如:

代码语言:javascript
复制
/**
 * smartypants text replacement
 */
function smartypants(text) {
  return text
    // em-dashes
    .replace(/---/g, '\u2014')
    // en-dashes
    .replace(/--/g, '\u2013')
    // opening singles
    .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018')
    // closing singles & apostrophes
    .replace(/'/g, '\u2019')
    // opening doubles
    .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c')
    // closing doubles
    .replace(/"/g, '\u201d')
    // ellipses
    .replace(/\.{3}/g, '\u2026');
}

或者

代码语言:javascript
复制
serialize(value) {
    return value
      .toLowerCase()
      .trim()
      // remove html tags
      .replace(/<[!\/a-z].*?>/ig, '')
      // remove unwanted chars
      .replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g, '')
      .replace(/\s/g, '-');
  }

好像正则表达式也不是很多,不过无所谓了。我想表达的意思主要是,结合以往的经验,似乎所有的框架,或者js库的源码里都会涉及到正则表达式,而大部分前端人员平时在写业务代码的时候精力并没有放在正则上,比如我自己,需要正则表达式的时候,会直接去百度某个类型的正则表达式,很少去思考,去自己动手实现一个自己需要的正则表达式。

这种现象是不对的,假如我有一天想要仔细的研究某个框架,或者某个npm包的实现原理,源码down下来,一堆正则表达式看不懂,岂不是很尴尬 ?

这个问题需要纠正。

关于TypeScript

这两天发现TypeScript越来越重要了,倒不是说在业务中不会写TypeScript, 目前的项目里还是用的es6语法居多。但是最近的项目用Taro做了H5和小程序的多端开发模式,所以想看下Taro的源码。

源码里分了很多npm包,用lerna做了包管理。重点是大部分包里都有一个types文件夹,用 TypeScript声明了很多类和接口。然后忽然想到一个事情,现在基本上框架层面的东西都使用TypeScript进行了更新。

平时写代码的时候没怎么注意这个问题,假如哪一天想看看源码,提升一下自己的技术深度。或者说现有的代码需要用TypeScript进行重构,重新抽象一遍,简化开发。看不懂代码或者不会用TypeScript进行抽象,岂不是也很尴尬?

总结

算是一点心得吧。

开始重视正则TypeScript

javascript基础知识总结

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-08,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 JavaScript高级程序设计 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于浏览器插件
  • 关于正则表达式
  • 关于TypeScript
  • 总结
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com