refact之前:大量的重复代码

refact之后:用map消除了重复代码。

现在的分支里每次执行检查都要先 var usRegx = /XXXX/. 实际上通过字面量定义了一个正则表达式对象,开销比定义一个String大。其实没必要每次都定义,可以把map定义在controller的一个全局属性上。
执行这段代码就可看出字符串常量和正则表达式字面量的性能差异:

var N = 100000000;
console.time("normal string");
for( var i = 0; i < N; i++){var a = "a";
}
console.timeEnd("normal string");console.time("regular exp");
for( var i = 0; i < N; i++){var b = /^[0-9]{5}$|^[0-9]{5}-[0-9]{4}$/;
}
console.timeEnd("regular exp");

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

一个利用正则表达式进行代码重构,去除冗余代码的例子相关推荐

  1. 自己写了一个利用python判断鼠标是否移动的代码

    # -*- coding: utf-8 -*- """ Created on Tue Jun 22 20:46:52 2021@author: lingduxingxi ...

  2. 无码系列5.1 代码重构 消除重复代码

    1 前言 本文可以视为对ThoughtWorks高级顾问yuanyingjie关于"正交四原则"策略"消除重复"的"个人解读". 如有谬误, ...

  3. python代码重构技巧_Python代码重构

    代码重构是一件很是辛苦却很是有意义的事情,代码重构的缘由在于:django 一.代码过于冗余.沉余架构 二.代码过于耦合函数 三.代码过于复杂学习 四.接口调用超出三层优化 此次重构主要在于架构问题, ...

  4. php代码重构,Shell在代码重构中的应用了解下

    代码重构(Code refactoring)有时是很枯燥的,字符串替换之类的操作不仅乏味,而且还容易出错,好在有一些工具可用,以PHP为例,如:Rephactor,Scisr等等,不过现成的工具往往意 ...

  5. java代码重构工具_代码重构什么意思 Java代码重构的几种模式

    指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果. 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方.在极限编程的方法学中,重构需要单元测试来支持. 在软件工程 ...

  6. 解析单句sql_SqlParser 一个利用正则表达式解析单句SQL的类

    原SQL为select * from dual 解析后的SQL为 select * from dual 原SQL为SELECT * frOm dual 解析后的SQL为 select * from d ...

  7. python叮当猫代码_详细介绍一个利用html+css实现叮当猫的实例代码

    用html画出来确实是第一次接触,所以很乐意去尝试一下,对于我这种菜鸟,确实是帮助不少,至少懂得如何去画一个简单的人物形象出来,再加上一些动画效果,就活了,那就更好玩了!OK,开始之前,先把效果图晒一 ...

  8. 代码重复率检查工具jsinspect 检查重复代码,去掉冗余代码。

    jscpd jsinspect npm install -g jsinspect 检测复制粘贴和结构类似的JavaScript代码

  9. 环信即时通讯SDK集成——环信 uni-app-demo 升级改造计划——整体代码重构优化(二)

    概述 本次关于 uni-app 代码整体重构工作,基于上一期针对 uni-app 官网 demo 从 vue2 迁移 vue3 框架衍生而来,在迁移过程中有明显感知,目前的项目存在的问题为,项目部分代 ...

最新文章

  1. 中国人情世故的63个定律 。
  2. Redis 高级教程 Redis 分区(6)
  3. java学习与总结:MySQL和数据库基础知识
  4. 薪资那么高的Web前端的工作者,想要提高薪资就必须看的书单
  5. excel概率密度函数公式_Excel统计函数“F”系列,日常办公数据分析必备7大公式!...
  6. copy与mutableCopy的内存管理剖析
  7. Spark广播变量实现原理及基础编程
  8. 每日程序C语言9-判断分数段
  9. 求最大公约数和最小公倍数简洁写法的注意事项
  10. Android 系统性能优化(23)---绘制性能优化
  11. python信息传送管道_python – 获取返回管道输入的命令
  12. 看看华为 Java 编程的军规...
  13. 裴礼文数学分析中的典型问题与方法第1章一元函数极限练习
  14. CSS-线性渐变无畸变-环形普通进度条-环形能量块进度条-局部环形普通进度条
  15. Laravel文档阅读笔记-How to deploy Laravel 8 project on Cpanel shared hosting
  16. R语言一步到位求数据的均值,频数,标准差,标准误差
  17. LightOJ1197 Help Hanzo(欧拉筛+区间素数)
  18. 【python入门小知识】实现人名全大写,全小写,首字母大写
  19. oCPC实践录 | 摸石头过河,oCPC先跑起来再说
  20. 类中数组成员变量怎么初始化,数组名与指针的区别

热门文章

  1. 常用jquery鼠标事件和渐变动画效果
  2. Linq--使用Linq在不同类型之间转换
  3. springMVC笔记系列——RequestParam注解
  4. Hadoop学习笔记03_Hive练习
  5. javaweb学习总结(十)——HttpServletRequest对象(一)(转)
  6. jQuery Ajax 实例 全解析
  7. Note for Consulting Handbook5
  8. beego orm 删除不掉数据!!!
  9. javascript中判断对象是否为空几种场景
  10. 时间序列与R语言应用(part5)--移动平均MA模型及其可逆性