随笔分类 -  js高级

摘要:观察者模式(Observer pattern),和发布订阅模式(Publish–subscribe pattern),到底有什么不同? 观察者模式 所谓观察者模式,其实就是为了实现松耦合(loosely coupled)。 用《Head First设计模式》里的气象站为例子,每当气象测量数据有更新, 阅读全文
posted @ 2022-01-24 10:00 simple-love 阅读(105) 评论(0) 推荐(0)
摘要:/** 发布者 */ class Publish { name: string id: number messageMap: { [key: string]: {id: number; name: string; [x: string]: any}[] } /** name等同于给当前发布者一个名称 阅读全文
posted @ 2021-12-14 16:13 simple-love 阅读(178) 评论(0) 推荐(0)
摘要:<script> function debounce (fn, delay) {//防抖 let timer = null; let firstTime = false; return function (...args) { let context = this; if (firstTime) { 阅读全文
posted @ 2021-09-14 16:44 simple-love 阅读(84) 评论(0) 推荐(0)
摘要:js 单线程、宏任务与微任务的执行顺序 js 单线程 众所周知js是单线程,但js是可以执行同步和异步任务的,同步的任务众人皆知是按照顺序去执行的; 而异步任务的执行,是有一个优先级的顺序的,包括了 **宏任务(macrotasks)**和 微任务(microtasks) 宏任务 是指消息队列中的等 阅读全文
posted @ 2021-01-27 10:16 simple-love 阅读(1649) 评论(0) 推荐(1)
摘要:先看一个比喻 进程就是一个公司,每个公司都有自己的资源可以调度;公司之间是相互独立的;而线程就是公司中的每个员工(你,我,他),多个员工一起合作,完成任务,公司可以有一名员工或多个,员工之间共享公司的空间 什么是进程? 进程:是cpu分配资源的最小单位;(是能拥有资源和独立运行的最小单位) 什么是线 阅读全文
posted @ 2021-01-27 09:59 simple-love 阅读(603) 评论(0) 推荐(0)
摘要:转载:https://my.oschina.net/vivotech/blog/3214445 很多同学在学习 Promise 时,知其然却不知其所以然,对其中的用法理解不了。本系列文章由浅入深逐步实现 Promise,并结合流程图、实例以及动画进行演示,达到深刻理解 Promise 用法的目的。 阅读全文
posted @ 2020-12-02 17:24 simple-love 阅读(677) 评论(0) 推荐(0)
摘要:2,箭头函数 function(){} ()=>{} 箭头函数 function(e){} e =>{} 箭头函数 function(){一行} ()=>一行 箭头函数 function(e){一行} e =>一行 箭头函数 特点:1,this指向与一般的function函数不同 声明式 funct 阅读全文
posted @ 2020-11-19 11:50 simple-love 阅读(2881) 评论(0) 推荐(0)
摘要:<script> function fun() { console.log(this) } fun() // Window let obj = { a:fun } obj.a() // obj function test2(c) { c&&c() } test2(obj.a) // Window / 阅读全文
posted @ 2020-11-19 11:39 simple-love 阅读(122) 评论(0) 推荐(0)
摘要:我们知道 js 是单线程执行的,那么异步的代码 js 是怎么处理的呢?例如下面的代码是如何进行输出的: console.log(1); setTimeout(function() { console.log(2); }, 0); new Promise(function(resolve) { con 阅读全文
posted @ 2020-11-19 11:19 simple-love 阅读(171) 评论(0) 推荐(0)
摘要:this指的是函数运行时所在的环境: 实际上this 是在运行时进行绑定的,并不是在编写时绑定,它的上下文取决于函数调 用时的各种条件。this 的绑定和函数声明的位置没有任何关系,只取决于函数的调用方式。 总结: 函数被调用时发生 this 绑定,this 指向什么完全取决于函数在哪里被调用。 一 阅读全文
posted @ 2020-11-18 09:23 simple-love 阅读(2546) 评论(0) 推荐(0)
摘要:转发:地址 https://wintc.top/article/20 经常有同学问树结构的相关操作,也写了很多次,在这里总结一下JS树形结构一些操作的实现思路,并给出了简洁易懂的代码实现。本文内容结构大概如下: 一、遍历树结构 1. 树结构介绍 JS中树结构一般是类似于这样的结构: let tree 阅读全文
posted @ 2020-10-31 11:02 simple-love 阅读(3631) 评论(0) 推荐(0)
摘要:Diff算法 什么是Diff算法? diff算法作为Virtual DOM的加速器,其算法的改进优化是React整个界面渲染的基础和性能的保障,同时也是React源码中最神秘的,最不可思议的部分 传统Diff: 计算一棵树形结构转换为另一棵树形结构需要最少步骤,如果使用传统的diff算法通过循环递归 阅读全文
posted @ 2020-10-15 13:30 simple-love 阅读(810) 评论(0) 推荐(0)
摘要:对于大部分前端开发者而言,new一个构造函数或类得到对应实例,是非常普遍的操作了。下面的例子中分别通过构造函数与class类实现了一个简单的创建实例的过程。 // ES5构造函数 let Parent = function (name, age) { this.name = name; this.a 阅读全文
posted @ 2020-10-15 13:12 simple-love 阅读(769) 评论(0) 推荐(0)
摘要:前言 我们知道dom结构也是以树的形式存在的,所以了解树的这种数据结构对于我们分析前端代码还是很重要的。 (当然这里跟前端沾边也是为了吸引大家学习的兴趣,真相其实是我就单纯的想写这一章 ...(。•ˇ‸ˇ•。) ...) 废话不多说,我们先从二叉排序树开始学起吧。 二叉排序树(BST Binary 阅读全文
posted @ 2020-04-20 14:34 simple-love 阅读(413) 评论(0) 推荐(0)
摘要:单例模式 在执行当前 Single 只获得唯一一个对象单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例。 var Single = (function(){ var instance 阅读全文
posted @ 2020-02-26 10:04 simple-love 阅读(355) 评论(0) 推荐(0)
摘要:在网上找了不少入门实例,依旧认为还是张容铭小哥给的情景最为适合,他的情境是这样的: 项目经理过来说,咱马上要过圣诞节啦,得打折清仓呀,有的商品5折,有的7折,有的9折~ 作为菜鸟的我🤔: 就这么尴尬的一个一个function垒起来~(在下刚入行的时候还真是这么写的😅~)。这时项目经理又来了,圣诞 阅读全文
posted @ 2020-02-26 09:57 simple-love 阅读(666) 评论(0) 推荐(0)
摘要:第一次看到柯里化这个词的时候,还是在看一篇算法相关的博客提到把函数柯里化,那时一看这个词就感觉很高端,实际上当你了解了后才发现其实就是高阶函数的一个特殊用法。 果然是不管作用怎么样都要有个高端的名字才有用。 首先看看柯里化到底是什么? 维基百科上说道:柯里化,英语:Currying(果然是满满的英译 阅读全文
posted @ 2020-02-24 11:07 simple-love 阅读(2575) 评论(0) 推荐(0)
摘要:一、构造函数: 构造函数:通过new关键字可以用来创建特定类型的对象的函数。比如像Object和Array,两者属于内置的原生的构造函数,在运行时会自动的出现在执行环境中,可以直接使用。如下: var arr = new Array();//使用Array构造函数创建了一个array实例arr ar 阅读全文
posted @ 2019-12-09 16:25 simple-love 阅读(1072) 评论(0) 推荐(0)
摘要:想要继承,就必须要提供个父类(继承谁,提供继承的属性) 一、原型链继承 重点:让新实例的原型等于父类的实例。 特点:1、实例可继承的属性有:实例的构造函数的属性,父类构造函数属性,父类原型的属性。(新实例不会继承父类实例的属性!) 缺点:1、新实例无法向父类构造函数传参。 2、继承单一。 3、所有新 阅读全文
posted @ 2019-11-25 15:34 simple-love 阅读(344) 评论(0) 推荐(0)
摘要:闭包是什么? ·了解闭包首先了解js的‘链式作用域’结构,对象可以一级一级的向上查找父对象的变量,所以父对象的变量对子对象可见,反之不成立;所以都可以访问全局变量 ·为了解决函数外部无法访问函数内局部变量的问题,就在父函数中定义一个子函数并让它访问了父函数的局部变量,再通过父函数返回该子函数就实现了 阅读全文
posted @ 2019-11-07 20:20 simple-love 阅读(773) 评论(1) 推荐(0)