![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript
文章平均质量分 73
Story..
这个作者很懒,什么都没留下…
展开
-
lodash源码中的memoize函数
lodash源码中的memoize函数一、背景为什么要写这样的一篇博客,因为在蚂蚁一面的时候,面试官就出了这样的一道面试题;题目是这样的:写一个函数,接受一个函数作为参数,另外接受一个resolver,返回一个函数,要求返回的这个函数需要实现以下的目标;调用这个函数的时候,如果传入相同的参数,那么第二次相同参数会返回缓存的结果,从而减少不必要的计算过程;二、实现这道面试题是基于lodash源码的;因为在lodash源码中就要这样的一个函数;它的名字叫做memoize;它的实现思路是这个样子的,原创 2022-02-03 21:10:17 · 1573 阅读 · 0 评论 -
lodash源码中debounce函数分析
lodash源码中debounce函数分析一、使用在lodash中我们可以使用debounce函数来进行防抖和截流,之前我并未仔细注意过,但是不可思议的是,lodash中的防抖节流函数是一个函数两用的,所以今天我就简单分析一下,它是如何做到的;lodash中的debounce官网用法// 情况一:当resize事件触发后,并不会立即执行,而是会直到密集程度大于150的时候,才会触发calculateLayout执行;也就是我们常说的防抖函数;jQuery(window).on('resize',原创 2022-02-01 16:16:17 · 4951 阅读 · 0 评论 -
克隆一个数据结构
克隆一个数据结构;一、克隆一个正则表达式众所周知,在javascript语言中,正则表达式是一个引用类型的数据结构;typeof /[a-z]/// object如果需要克隆一个正则表达式,我们不仅需要克隆实例的正则字面量,还需要克隆正则的实例属性,详情可见正则表达式;我们可以通过reg.source取到一个正则表达式的文本。然后通过new RegExp的方式构建一个新的正则表达式;let reg = /[a-z]/g;function cloneReg(reg) { let ne原创 2022-01-30 14:17:49 · 786 阅读 · 0 评论 -
如何在vue项目中使用Iframe使得任务分区
如何在vue项目中使用Iframe使得任务分区!一、问题描述背景:前两天,我和我的同事遇到一个问题,大概是这样子的,在一个项目的一个页面中使用websocket获取后台的实时数据,实时数据每一秒钟得到一条,一条数据大约有12组(可能会更多),前端需要分组将其动态的绘制到12个echarts图表中;画出来的图是基于这个图例的,也就是说,每一秒钟浏览器都需要绘制超过12个这样的图例,项目设计上是没有做分页或是其他的分页处理的;因此只能硬着头皮同时绘制在一个页面中;问题:问题在于,因为需求是想要看到从业务原创 2022-01-18 11:38:37 · 670 阅读 · 0 评论 -
class的继承
class的继承!一、实现一个继承;先来看一个简单的例子class Point { constructor(x, y) { this.x = x; this.y = y; } toString() { return this.x + '-' + this.y }}class ColorPoint extends Point { constructor(x, y, color) { super(x, y); // 调用父类的construct原创 2022-01-08 11:34:56 · 2200 阅读 · 0 评论 -
CommonJS和ES6模块有什么区别
commonjs和esmodule有什么区别原创 2022-01-01 15:31:30 · 1440 阅读 · 0 评论 -
异步遍历器
异步遍历器一、概念异步遍历器是ES6的新语法,主要是为了解决异步任务的遍历问题。现在有下面的代码;const arr = [ new Promise(resolve=>{ setTimeout(()=>{ console.log('1') },1000) }), Promise.resolve('2'), Promise.reject('3')]// 现在需要遍历这个数组arr.forEach(promise=>{ promise.then(r原创 2021-12-30 21:22:07 · 433 阅读 · 0 评论 -
装饰器 Decorator
javascript , 装饰器原创 2021-12-28 20:47:56 · 110 阅读 · 0 评论 -
关于前端导出文件打不开的问题
关于前端导出文件打不开的问题前言:不知道小伙伴们在开发当中有没有遇到这样的问题,业务需求是需要导出一个文件,后端会返回回来一个文件流,然后我们需要将其处理成为一个文件类型,常用的是导出excel文件。如果在百度上一搜会发现其实很简单,思路大概是这样的文件流|Blob类型|URL|创建a标签|指定href为URL|设置download属性来指定文件名代码大概是这样的。const downloadDoc = function(content, filename) { le原创 2021-11-01 21:53:02 · 4868 阅读 · 3 评论 -
vue2.0源码分析——内置组件
题目:vue2.0源码分析——内置组件前言:本篇文章,我将对vue2.0中所有的内置组件的源码进行一个分析,包括keep-alive , transition , transition-group , slot , component 。我希望通过这篇文章的分析,不仅我自己也包括看这篇文章的所有小伙伴都能对vue的内置组件都有一个较为深入的了解。那接下来我们就开始吧。一、keep-alive这个内置组件相信大家都很熟悉,这里要说一个比较丢脸的事情,就是笔者曾经第一次找工作面试时,问道了keep-ali原创 2021-09-23 09:22:09 · 356 阅读 · 0 评论 -
Vue2.0 源码解析 --- 响应式原理
题目 : Vue2.0 源码解析 — 响应式原理前言:vue的响应式原理不仅是面试时的高频考点,也是Vue区别于其他框架的一个很重要的特点,本文尝试用文图结合的方式来剖析响应式原理。理解几个核心的类(Observer 、Watcher 、Dep 、VNode),以及诸如依赖收集 、派发更新 等核心的概念一、Vue在执行时的流程<1> 概括首先来看一张图片当你通过npm下载vue时,模块化开发时的源码在src目录下,dist是通过rollup打包后,运行在生产环境下的js文件。找原创 2021-09-16 17:10:02 · 905 阅读 · 0 评论 -
JavaScript数据结构与算法
七、树八、图九、遍历算法十、排序算法原创 2021-08-31 14:23:19 · 281 阅读 · 0 评论 -
JavaScript数据结构与算法
JavaScript结构与算法一、栈二、队列三、哈希表四、字典五、集合六、链表七、树八、图九、遍历算法十、排序算法原创 2021-08-30 13:10:56 · 1073 阅读 · 0 评论 -
手写A+ Promise
题目:手写A+ Promise一、前言在手写promise之前我们先来了解一下什么是promiseA+ 规范,附上链接:Promise A+规范,我简单根据这个A+规范总结一下,包括本次手写Promise也是简单实现一下部分的需求;(1):如果用面向对象的角度考虑,Promise是一个类,所有实例拥有三个属性,而且应该属于是私有属性(2):三个属性分别是state(保存着当前promise的状态),状态的取值必须是pending (进行中), fullfilled (成功), rejected(失败原创 2021-08-20 14:43:24 · 193 阅读 · 0 评论 -
关于javascript闭包的一些理解
一、概念:我理解的闭包其实就是,一个内层函数被一个外层函数所包裹,内层函数引用着外层函数中的变量,当外层函数被调用后,由于其中的变量被内层函数所引用,因此无法被垃圾回收机制所清除...原创 2021-06-04 12:57:28 · 82 阅读 · 1 评论