常用的高阶函数之控制执行次数

控制次数其实主要从两方面着手,一方面是简单的限制函数的执行次数,而另一方面可以缓存函数的执行结果。 限制函数的执行次数对于有些场景下可能需要控制执行次数,比如设置错误重试次数5次,比如表单提交函数只允许执行一次防止重复提交。 function limit(fn, limit, context) &#…

React Error Boundaries(错误边界)

过去,组件内部的 JavaScript 错误经常会破坏 React 的内部状态,并导致它在下一次渲染时发生奇奇怪怪的错误。这些错误通常总是由应用程序代码中的早期错误引起,但在之前版本的 React 没有提供在组件中优雅地处理它们的方法。 针对“部分 UI 的错误不应当导致整个应用的崩溃” 这个理念,…

link 标签的预加载相关属性的简单介绍

我们知道,浏览器在解析文档的时候如果遇到引入的外部资源,需要下载外部资源,如果有些外部资源比较大,可能会需要一个较长的下载时间,而资源预加载技术就是为了部分解决这样的问题的。 资源预加载顾名思义,就是预测将来可能需要的一些资源,并在当前对这些资源进行预先加载的技术。 很明显,资源预加载对优化当前页面…

script 标签上的 async 与 defer

我们知道,html 在解析过程中,如果遇到外部的脚本,会暂停当前页面的解析过程,而是去下载这个引入的外部脚本,然后执行这个外部脚本,这样无疑会导致当前的页面的渲染被阻塞,这也是为什么建议将脚本文件的加载放在文档的最后。 script 标签新增加了两个布尔属性 defer 和 async 用于控制脚本…

字符串的重复和补全的新函数

字符串的重复,追加补全也是常用的操作, ES 的新标准也为字符串添加了几个支持这样操作的函数,提供了操作的方便,之前一直没注意到这几个方法,这里做一个补充。 repeat将源字符串重复多次后返回 string.repeat(count); count 指定字符串重复次数,重复次数不能小于0,如…

JS 中的 this

JS 中的 this 是一个很容易让人迷糊的概念,本文主要总结了各种情况下的 this 指向。 全局环境中的 this全局环境中的 this 总是指向全局对象 window 上的。 this.a1 = 10;var a2 = 20;console.log(a1); // 10console.log(…

关于 rel="noopener noreferrer"

在使用 ESlint 的时候发现,当使用新标签打开外部链接时候(target="_black"), eslint-plugin-react 插件报出了错误: Prevent usage of unsafe target='_blank' (react/jsx-no-target-…