rem 事件循环

在这里插入图片描述
在这里插入图片描述

rem本质是等比例缩放
rem是移动端适配方案 是html的fontsizede
假设我们将屏幕宽度平均分成100份,每一份的宽度用x表示,x = 屏幕宽度 / 100,如果将x作为单位,x前面的数值浏览器权限细心 就代表屏幕宽度的百分比 浏览器、

圣杯布局 双飞翼布局

因为js只能是单线程的(一个操作dom节点 一个删除dom节点 会出问题)只能有一个主线程 不能有多个主线程
浏览器的事件循环又分为同步任务和异步任务
同步任务
含义:在主线程上排队执行的任务,只有一个任务执行完毕,才能执行后一个任务
异步任务
含义:不进入主线程,而进入“任务队列(task queue)”的任务,只有“任务队列”通知主线程,某个异步任务可以执行了,该任务才会进入主线程执行。
异步任务又分为宏任务和微任务。所有同步任务都在主线程上执行,形成一个函数调用栈(执行栈),而异步则先放到任务队列(task queue)里,任务队列又分为宏任务(macro-task)与微任务(micro-task)。
宏任务
宏任务包括:script(整体代码)、setTimout、setInterval、setImmediate(node.js环境)、I/O、UI交互事件
微任务
微任务包括:new promise().then(回调)、MutationObserver(html5新特新)、Object.observe(已废弃)、process.nextTick(node环境)

​ 若同时存在promise和nextTick,则先执行nextTick
3、执行顺序
先执行同步代码,
遇到异步宏任务则将异步宏任务放入宏任务队列中,
遇到异步微任务则将异步微任务放入微任务队列中,
当所有同步代码执行完毕后,再将异步微任务从队列中调入主线程执行,
微任务执行完毕后再将异步宏任务从队列中调入主线程执行,
一直循环直至所有任务执行完毕。
注意:当宏任务和微任务都处于 任务队列(Task Queue) 中时,微任务的优先级大于宏任务,即先将微任务执行完,再执行宏任务;

白小丫啊 17:45:10
下班就回来 饿的不行了

dalihai 17:45:26

白小丫啊 17:45:38
我要吃2个饼

dalihai 17:46:03
你说的馅饼还是大饼

白小丫啊 17:46:16
馅饼

白小丫啊 17:46:21
你要买什么饼

白小丫啊 17:46:23
我都行

dalihai 17:46:25

白小丫啊 18:44:02
https://blog.csdn.net/qq_42865575/article/details/124847530?ops_request_misc=&request_id=&biz_id=102&utm_term=%E4%BA%8B%E4%BB%B6%E5%BE%AA%E7%8E%AF&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-124847530.nonecase&spm=1018.2226.3001.4187

dalihai 19:43:42
js是单线程 一次只能执行一个任务 前一个任务执行完 才会执行后一个任务 所有任务都需要排队等待
所以当前一个任务耗时很长 就会引起阻塞

任务可以分为同步任务和异步任务
同步任务 就是 在主线程上排队执行的任务 只有当前一个任务执行完毕 才执行后一个任务
异步任务 是指 任务不进入主线程 而是进入任务队列 只有当主线程的所有任务执行完毕
才会读取任务队列 开始执行异步任务

异步任务 分为宏任务和微任务

宏任务 有 script settimeout setinterval postMessage MessageChannel setImmediate(Node.js 环境)
微任务 有 promise.then Object.observe MutationObserver、process.nextTick(Node.js 环境)

程序一开始 主线程 先执行一个宏任务 script脚本 产生的宏任务和微任务进入各自的任务队列中
第一个宏任务中同步代码执行完成 执行微任务 直到微任务队列清空
执行下一个宏任务 如此重复执行 这个过程就是事件循环

所以事件循环的定义 主线程内的任务执行完毕为空的时候 回去任务队列读取相应的任务。
推入到主线程执行 这个不断重复的过程就是事件循环

async标记的函数会返回一个Promise对象,Promise一旦被定义就会被立即执行
async/await 函数其实就是一种语法糖
async/await 是基于promise实现的,async 函数其实就是把 promise 做了一个包装
await 返回值是一个 Promise 对象,它只是把 await 后面的代码放到了 Promise.then()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值