前端
文章平均质量分 55
mmzzll2019
这个作者很懒,什么都没留下…
展开
-
前端实现一个异步的promise
面试经常被问道怎么实现Promise,下面我们来实现一个Promise。我在网上搜索了一堆实现方案,总感觉有些不符合我的期望,下面是我的一些参考的实现方案:1. https://www.jianshu.com/p/43de678e918a2. https://segmentfault.com/a/1190000016550260MDN上的Promise文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Globa原创 2021-06-06 00:21:52 · 278 阅读 · 1 评论 -
js从0开始实现大整数加法
如果两个整数太大,超过了 2^52 - 1 的时候,做加法时,会出现精度损失的现象,这时候可以直接利用js提供bigInt类型来做加法,这里就不再赘述了。我这里是用字符串来输出做加法的结果,通过拆分数字来实现无精度损失的加法运算。具体实现如下:function sum(a, b, step = 9){ const ar1 = splitNumber(a, step) const ar2 = splitNumber(b, step) if (ar1[0] !== ar2[原创 2021-05-07 16:44:44 · 195 阅读 · 0 评论 -
React的Portals的用法
在线演示https://myp00yr1xx.codesandbox.io/react-portal在线代码https://codesandbox.io/embed/myp00yr1xx?fontsize=14不知道大家想过这样一个问题没有,我们创建了一个子组件后,要把它放到指定的dom元素下面,该怎么办?ReactDom提供了这样一个api// child可以是ReactElement,...原创 2019-04-17 03:35:32 · 823 阅读 · 0 评论 -
js浅拷贝和深拷贝的方法和坑
在c语言中有指针这个概念,浅拷贝的概念有点类似于引用指针。对于普通的Boolean、String和Number不是通过new关键字产生的来说,深拷贝和浅拷贝没有区别。const shallowCopyStrNumBool = (origin) => { return origin;}const deepCopyStrNumBool = (origin) => { if (...原创 2019-04-22 18:37:35 · 200 阅读 · 0 评论 -
React 之reconciliation--diff算法
参考文档https://reactjs.org/docs/reconciliation.html传统的diff算法https://grfia.dlsi.ua.es/ml/algorithms/references/editsurvey_bille.pdf。为了用最少的操作,把一颗树结构转化成另外一颗树结构,使用了非常复杂的算法,复杂度达到了O(n^3),其中n为树的节点数。与传统的diff算法...原创 2019-04-22 23:51:40 · 272 阅读 · 0 评论 -
自定义事件
查阅文档https://developer.mozilla.org/zh-CN/docs/Web/API/CustomEvent发现可以使用CustomEvent自定义事件。下面基于react-hook实现一个自定义事件example。export const CustomEventHookTest = () => { const evt = useMemo(() => { ...原创 2019-05-07 23:16:56 · 126 阅读 · 0 评论