自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hamling620(鹿门剑客)

一个菜鸡前端的问道之路

  • 博客(9)
  • 收藏
  • 关注

原创 TypeScript实现队列结构

使用TypeScript实现队列结构一. 基本概念队列是一种先进先出(First In First Out)的数据结构。它是从队尾插入元素(入队),从队首删除元素(出队)。队列在日常生活中就是排队,在JavaScript中的应用就是EventLoop微任务宏任务队列等。二. 队列的实现interface IQueueData<T> { [index: number]: T}class Queue<T> { private data: IQueueData&l

2021-05-21 22:45:33 558 1

原创 CommonJS模块导入机制

CommonJS模块导入机制在CommonJS中我们通过require方法导入模块,通过module.exports导出模块,module.exports默认的出口。我们也可以通过exports.属性(跟this.属性是同样效果)导出一个变量。之所以能这样使用,是因为模块中exports和this对象都与模块(module)的exports属性指向同一块内存地址。如果把exports或者this赋值为一个变量,那么exports和this将不再指向module.exports引用的内存地址,那么通过那

2021-05-04 02:45:41 721

原创 TypeScript基础

TypeScript基础笔记(主要注意点)类型语法扩展工具强类型、弱类型:区别在于变量能否被赋值为其它类型动态类型、静态类型:区别在于动态类型变量的类型是在编译阶段确定的,而静态类型变量类型是在运行时确定的1. 基本数据类型void 0返回一个undefined,undefined在JavaScript中不是保留字,可以当做变量使用string、number、boolean、undefined、null、symbol、any、void、unknown、neverunknown

2021-05-04 02:15:26 157

原创 TypeScript实现栈结构

使用TypeScript实现栈结构一. 栈的基本概念栈(Stack)是一种后进先出(Last In First Out)的数据结构。它是从栈顶插入(push)元素,我们称之为入栈,从栈顶推出(pop)元素,我们称之为出栈。栈的用途非常广泛,生活中我们喝红酒总是先喝掉后倒入的,后喝掉先倒入的,一摞书,我们总是先去除最上面的书。编程中栈被用于函数调用栈以及浏览器历史记录栈。二. 栈的实现interface StackData<T> { [index: number]: T;}c

2021-05-04 01:35:35 451

原创 发布订阅EventEmitter(Typescript)

发布订阅模式中的EventEmitter(Typescript)模块Node.js 的events模块,运用非常广泛。这里面实现它四个最主要的方法:on、emit、off和once方法。其中,除了emit返回布尔值(true表示触发成功),其它都返回this,表示实例本身,以此可以进行链式调用。once方法的实现实际上运用了面向切面编程(AOP)的思想,执行原有的listener,并把当前的方法on代理到listener的fn属性上,从而在off的时候可以去掉新注册的on方法。interface L

2021-05-03 23:55:53 1246 1

原创 Promise主要方法实现

Promise主要方法实现1. Promise.allPromise.all用于将多个Promise实例包装成一个Promise实例并返回这个Promise实例,只有所有的promise的状态变为resolved,返回的promise状态才变为resolved,否则变为rejected。Promise.all = function (promises) { if (typeof promises[Symbol.iterator] !== 'function') { throw new

2021-04-22 16:22:23 79

原创 Promise以及A+规范实现

PromisePromise是ES6提出并实现的异步解决方案。它将异步操作以同步的流程表达出来,避免了层层嵌套的回调函数。它可以看作一个保存着未来才会结束的事件(通常是异步操作的结果),从语法上来说它是一个对象,可以从它来获取异步操作的消息。ES6提供统一的API来处理不同的异步操作。Promise对象的状态不受外影响,只与异步操作的结果相关,换言之,就是异步操作的结果来决定Promise对象的状态;Promise对象的状态只能由pending变为fulfilled和pending变为reject

2021-04-21 10:55:44 173

原创 JavaScript基础之new、instanceof操作符的实现

JavaScript基础之new、instanceof操作符的实现1. new的实现new做了一下以下操作:1. 创建了一个对象(内存中开辟空间);2. 将这个创建的对象的原型对象(proto)指向构造函数的原型对象(prototype);3. 让当前构造函数的this指向创建的对象,并执行构造函数;4. 执行构造函数的返回值如果是引用类型,那么直接返回,否则把创建的对象返回。function myNew () { var Constructor = Array.prototype.s

2021-04-20 17:20:07 72

原创 JavaScript基础之call、apply和bind方法

JavaScript中函数原型方法call、apply和bindcall、apply、bind方法主要用来改变函数中this的指向(显式绑定this)1. call调用call方法会将函数中的this指向上下文对象,然后传递call中余下的参数给函数,并执行函数。Function.prototype(context, …rest)。call方法的第一个参数为一个上下文对象,也就是绑定this的对象,对于基本类型string、number、boolean等类型,会将其转化为相对应的基本包装类

2021-04-18 18:31:57 181 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除