自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 setTimeout 实现原理

setTimeout 实现 渲染进程所有运行在主线程上的任务都需要先添加到消息队列中,然后事件循环系统顺序执行消息队列 eg: 解析 DOM; 改变 web 大小, 重新布局; js 垃圾回收; 异步执行 js 代码 但是定时器的任务不能直接放置在消息队列中,他需要按照时间间隔来执行,因此,chrome 除了消息队列外,新增了个延时队列,在每次执行完任务后,执行延迟队列中的任务,计算出到期任务,依次执行 代码实现: 在每次新增一个定时器时,将定时器添加到 DelayTask 中 执行消息循环时,在当前

2021-04-14 14:40:46 290

原创 浏览器中的消息队列和事件循环

浏览器中的消息队列和事件循环 渲染进程-主线程(dom/style/layout/JavaScript input/task) 系统统筹以上任务就是消息队列和时间循环系统 单线程处理任务 顺序执行 void MainThread(){ int num1 = 1+2; //任务1 int num2 = 20/5; //任务2 int num3 = 7*8; //任务3 print("最终计算的值为:%d,%d,%d",num1,num2,num3); //任务4

2021-04-14 10:35:07 244

原创 前端常用设计模式

前端常用设计模式 工厂模式 工厂模式不关心工厂函数内部的逻辑,只关心根据用户传递的参数返回对应的实例;工厂函数隐藏复杂逻辑,只提供一个接口 class Man { constructor(name) { this.name = name; } alertName() { alert(this.name); } } class Factory { static create(name) { return new Man(name); } } Factory.

2021-03-28 23:28:45 58

空空如也

空空如也

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

TA关注的人

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