计算机笔记
前端识记

前端小记

Babel是专门用来将新语法转换成浏览器支持的旧语法,就是修改语法结构的一个解析。Polyfill是专门对浏览器旧版本中没有提供的API进行一个扩展

Babel是专门用来将新语法转换成浏览器支持的旧语法,就是修改语法结构的一个解析。Polyfill是专门对浏览器旧版本中没有提供的API进行一个扩展

// babel
let res = response.content?.res;
// pollyfill
Array.newFunction = function(){}

事件循环执行顺序

一轮事件循环的顺序为同步代码 清空所有微任务 渲染浏览器 取一个宏任务 再清空微任务

先执行同步任务,然后执行微任务。宏任务,微任务有Promise.then (await()后面的代码)

async/await的本质

await(x) = promise.resolve(x).then(后续代码) Await后面整段都是微任务

 Promise.resolve().then(()=>{
	return Promise.resolve('inner')
}.then(()=>{
	console.log(213)
})

Promise.then(()=>{log(1)}).then(()=>{log(2)})

注意,在这两段代码中,下面它会返回后立即执行所有的任务, 第一个Promise.resolve返回了一个新的任务对象,它会放到下一轮的微任务中,所以它会放在比较后面执行,而第二个它就能返回了以后,能够接着接续执行下面的内容

inner ,1,2,213

Promise

一定处于pending、fulfilled、rejected其中一个状态。

new Promise()是打包一个流程的异步方法。

const myPro = new Promise((resolve,reject)=>{
	settimeout(()=>{resolve('ok')},200)
})

myPro.then(console.log)

以前记了N遍,需要再经常看看的

  1. fn.call是直接一个一个参数返回,apply是可以把所有参数作为一个数组返回,它们都是立即执行的;bind是传入这个新的This等内容,返回一个新的函数

  2. 节流和防抖,节流是限频,间隔是固定的,如果你提前到达,也需要等到这个规定的间隔时间到了才能刷新。但是防抖的话,其实就是按照最后一刻,只要来了就重新倒计时

CSS

包含块

首先定位position一共有四种方式,分别为relative、 absolute、 fixed和sticky Relative的定位就在原来自己的位置, Absolute则为最近的非static祖先, Fixed即为默认为视口, Sticky为最近的滚动容器

Fixed的一些提醒

Fixed默认是为视口,但是如果它的祖先使用了transform或者will change transform,那么它可能会按照这个祖先来定位。所以说有的时候可能会导致视口定位固定失效的问题

反向链接(0

还没有笔记链接到这里。在 Obsidian 里用 [[笔记名]] 引用它,这里就会出现,关系图谱上也会多出一条连线。

关系图谱

This指向前端小记前端识记

On this page