
js进阶-学习
文章平均质量分 59
啊胡咧咧
这个作者很懒,什么都没留下…
展开
-
JS进阶--设计模式
能干什么帮我们设计组织模块:通过设计模式,组织模块之间的组成结构帮我们设计沟通:设计模块间如何沟通提高代码质量:让代码具备可读性设计模式的设计原则开闭原则:程序对扩展开放,对修改关闭;能够不用修改源码的去扩展功能单一职责原则:一个模块只做一件事情,工作越单一越好依赖倒置原则:上层模块不要依赖具体的下层模块,而依赖于抽象接口隔离原则:接口细化,功能单一,不要一个接口调用太多的方法;单一职责原则关注模块,接口隔离关注于接口迪米特法则:也叫最少知识原则,在两个模块产生沟通时,知道的越少越好原创 2022-02-27 12:37:48 · 440 阅读 · 0 评论 -
JS进阶--JS事件循环
Event Loop事件循环宏任务与微任务优先级事件循环闭环流程宏任务与微任务我们发起的任务叫宏任务,JS引擎发起的任务叫微任务。如以下事件属于宏任务:setInterval(); setTimeout()如以下事件属于微任务:Promise().then(function(){}) ; new MutationObserver()当把异步事件放入任务队列中去的时候,也会分类:宏任务队列和微任务队列优先级当前主线程为空时,首先会去检查微任务队列中是否存在事件,如不存在,就会去检查宏任务队列#原创 2022-02-22 13:40:22 · 619 阅读 · 0 评论 -
JS进阶--防抖和节流
为什么要防抖有的操作是高频触发的,但其实触发一次就好了,比如说监听登录框输入,不应该是有输入就触发,而是在输入完失去焦点后去触发一次就好了怎么做事件触发开启一个定时器如果再次触发,就清除上一次的定时,重新开一个定时到,触发操作<input type='text' id="inputid" /><script>// 没有防抖 var inp=document.getElementById("inputid"); inp.oninput = function原创 2022-02-11 22:00:36 · 430 阅读 · 0 评论 -
JS进阶--高阶函数
是什么如果一个函数接受另一个函数作为参数,那么我们称该函数为高阶函数JS中常见的高阶函数forEach和Mapvar arr=[1,2,3];/*forEach源码*/Array.prototype.myForEach = function (callback){ var len=this.length; if (typeof callback !== 'function') { throw new Error(’muse be function') } for (var i原创 2022-02-11 16:57:02 · 554 阅读 · 0 评论 -
JS进阶--compose和pipe函数
原创 2022-02-11 16:04:11 · 624 阅读 · 0 评论 -
JS进阶--函数式编程
编程规范面向过程先做什么,再做什么面向对象把功能组织成对象,然后相关操作作为对象的方法函数式编程把功能分解为一系列独立的函数,通过函数之间互相调用来完成功能为什么用函数式编程能提高复用性和可扩展性每一个函数就是一块积木,我们能随时拼入新积木,随时能够去除积木去复用Tree-shakingTree-shaking的本质就是通过文档流的引入判断是否使用某个方法,但是面向对象的编程方案无法记录使用函数式编程可以完美的配合Tree-shaking...原创 2022-02-10 22:18:53 · 195 阅读 · 0 评论 -
JS进阶--代码性能指标
代码性能指标1.健壮性健壮性是什么健壮性是代码抗击风险(如Bug等)的能力健壮性的目的避免和程序无关的因素,导致代码报错快速给出问题反馈不至于因为非必要性bug,而导致程序执行中断如何保障健壮性参数做好默认值,做好检测程序做好意外情况处理对象参数的:2.可读性可读性的目的代码结构清晰他人能够看懂你的意思做法优化丑陋的结构// 典型的丑陋结构// 1.if-else分支过长-策略模式,状态if(xxx){}else if(xxx){}原创 2022-02-10 19:13:18 · 516 阅读 · 0 评论 -
JS进阶--内存管理
JS进阶--内存管理一、管理内存的意义1. 减少浏览器的负担2. Node端二、内存的数据储存1. 内存的分类栈内存堆内存2. 数据的存储普通类型变量的储存方法、对象、数组等引用类型3. v8内存的管理v8有多大新生代的回收算法老生代的回收算法触发回收的时机原创 2022-02-05 00:08:21 · 2449 阅读 · 0 评论