Javascript
文章平均质量分 51
David糖
这个作者很懒,什么都没留下…
展开
-
如何检测JavaScript函数执行时长
babel-plugin-transform-slow-func-detecter这个插件用于分析js运行过程中是否存在慢方法,仅在开发环境中使用,请勿在线上使用。它的原理是使用一个新的方法包裹原始方法,并在头尾部插入时间。已实现功能目前支持 react-native, web, node 平台分析同步方法运行时长分析 async 方法运行时长设置报警限制最大执行时长限制最大调用次数1. 安装yarn add --save babel-plugin-transform-slo原创 2021-09-02 20:47:29 · 937 阅读 · 1 评论 -
19-正则匹配浮点数?又是一道送命题
在这个例子中,我们将展示正则表达式初学者所常犯的错误,以及避免的方法。下面这个例子我们将匹配一个浮点数,这个表达式也可以匹配整数以及省略整数部分的浮点数。它不会匹配带有指数符号的浮点数例如1.5e8。乍看之下答案可能是:[-+]?[0-9]*\.?[0-9]*。这个表达式中首先定义了一个可选的正数负数符号,接下来是一组可选的整数,一个可选的小数点,最后是另一组可选的整数。这个表达式中的每一个部...翻译 2019-02-01 18:52:43 · 3458 阅读 · 2 评论 -
18-正则匹配数字范围
1. 正则匹配数字范围正则表达式是为了匹配字符而设计的,而并不是为了匹配数字,所以当你使用正则匹配指定范围内的数字的时候你需要额外小心。表达式[0-255]并不能匹配0至255之间的数字。表达式[0-255]是一个字符集,它的含义是匹配 0,1,2,5中任意一个字符,这个表达式等同于[0125]。正则引擎真正处理的是字符,所以数字0对于引擎来说是一个字符,而255对于引擎来说是长度为3的字符。...翻译 2019-02-01 18:50:28 · 34959 阅读 · 1 评论 -
14-回溯引用
14.1 使用回溯引用匹配出现过的字符串回溯引用可以匹配到捕获组曾经匹配过的结果。你可以使用它来匹配HTML的开启标签和闭合标签、以及他们之间的文本。我们可以把启示标签放入一对花括号中(创建捕获组),这样我们在匹配闭合标签的时候可以再次使用捕获组所匹配到的字符。表达式如下<([A-Z][A-Z0-9]*)\b[^>]*>.*?</\1>。这个表达式中只有一对圆括号,...翻译 2018-12-26 15:03:45 · 838 阅读 · 1 评论 -
01-专题目录
我将向你介绍正则表达式的方方面面。下面每一章节的内容都是建立在之前章节之上的,所以你需要按序阅读下面的章节。1. 介绍这一章将介绍本教程的内容范围,以及正则的一些名词解释。2. 字面量字符与元字符最基础的正则表达式是由字面量字符组成的。有些字符具有特殊的含义,在使用的时候需要转义,我们称它们为元字符。而元字符是正则中较为复杂的部分。3. 非打印字符非打印字符是诸如换行符、回车符、制表符...翻译 2018-11-28 09:09:26 · 233 阅读 · 0 评论 -
专题简介
这个系列的文章是为了向你介绍正则表达式引擎的工作原理,懂得这些原理是写出高效的正则表达式的关键。不仅如此这还将帮助你避免很多常见的错误,减少你花在猜测正则表达式的行为的时间。作者译:文章中很多带有链接的文字没有翻译成中文,这是因为我还没有对链接中的文章进行详细的理解,为了避免翻译出现错误我保留了英文。等到我翻译完成之后我会把标题和链接都替换成中文。笔者邮箱:billl89@126.com欢迎来...翻译 2018-11-28 09:05:47 · 474 阅读 · 0 评论 -
React生命周期学习总结
React生命周期学习总结1. constructor1.1 作用初始化state绑定事件处理函数的this指向1.2 props向state拷贝constructor(props) { this.state = { aa: this.props.aa }}在这种情况下props的变化不会引起stats的变化,容易引起...原创 2018-09-02 22:13:07 · 228 阅读 · 0 评论 -
如何检查Javascript中的内存泄漏
js内存泄漏通常是由于闭包所引起的,我们在判断是否存在内存泄漏的时候往往会觉得无从下手。通常我们通过codereview去判断是否泄漏,但是这种方法不够客观。我们需要一种客观的方法来证明泄漏的存在。Chrome Devtool其实Devtool已经提供了检查的工具,这就是Memory面板。它大概长这样。我们可以通过这个工具对页面中某一时刻的内存状态做一个快照,这个快照中包含此刻...原创 2018-06-13 17:45:11 · 6714 阅读 · 1 评论 -
如何让webpack打包的速度提升50%?
随着前端应用包含的模块数量日益增长,代码打包的耗时也越来越长。公司很多项目打包耗时超过了10秒,对于一般人来说超过10秒的等待是比较难受的,虽然后续增量编辑的速度很快。于是我想结合实际开发环境提升一下首次打包的速度。1. 实际开发环境我碰到大多数处于维护状态的网站都有一下几个特性:模块数量庞大模块中主要分为js模块和css模块,并且less模块最后使用extract-text-...原创 2018-05-10 11:30:39 · 4524 阅读 · 0 评论 -
如何解决jquery.jsonp请求在并发情况下容易发生异常的bug
知道现在使用jsonp的公司越来越少了,似乎有比jsonp更好的跨域方案。但是我发现腾讯视屏、爱奇艺视频、优酷土豆等大型互联网公司还在使用它时,我决定写一篇文章彻底解决jsonp在并发条件下报错的问题。毕竟jsonp有最好的兼容性。 先附上源码连接 Github1. 为什么会报错你是不是见过以下错误,通常在并发情况下容易出现这个错误,而且是否出错有随机性。Uncaug...原创 2018-03-31 10:10:55 · 3060 阅读 · 2 评论 -
【如何实现backbone组件化开发】 第二篇:优化方案的实现
系列文章 【如何实现backbone组件化开发】 第一篇:无组件所带来的问题在上一篇文章中,我们已经分析了Backbone在组件化开发上的不足,以及如何使用打包手段弥补这些不错。接下来我们来逐步通过一个例子来讲解优化的过程1. 场景假设假设我们需要使用Backbone编写这样一个输入框组件,它有一个input和一个label组成。当用户在input中输入文字,并且触发bl...原创 2018-02-08 23:20:32 · 1200 阅读 · 0 评论 -
【如何实现backbone组件化开发】 第一篇:无组件所带来的问题
组件化开发优势从2015以来前后端分离的模式被越来越多的公司所使用,随着业务代码复杂度的上升,代码也维护成本也随之上升。对于一个复杂的web应用,我们可以使用分而治之的方式来降低系统的复杂度,也就是标题中所说的组件化开发。组件化开发可以把系统分割多个子模块,每个模块完成单一的功能,不同模块可以相互组合、相互通信,从而构建大型复杂应用。Backbone中的组件化和其他流行的前端框架相比并不是...原创 2018-02-05 22:02:39 · 805 阅读 · 0 评论