首页/文章/八股文

八股文

228 篇文章

八股文02-26
阅读

手写async await核心原理

前言 async await 语法是 ES7出现的,是基于ES6的 promise和generator实现的 generator函数 在之前我专门讲个generator的使用与原理实现,大家没了解过的可以先看那个 这里就不再赘述generator,专门的文章讲专门的内容。 await在等待什么 我们先看看下面这代码,这是async await的最简单使用,await后面返回的是一个Promise对象: 但不知你有没有想过一个问题,为什么...

#面试
八股文02-26
阅读

手写generator核心原理

1.generator的使用 generator感觉大多数人不太熟悉,所以有必要科普下使用方法。熟悉使用方法 的伙伴可以直接到第二节。 Generator函数跟普通函数的写法有非常大的区别: 一是,function关键字与函数名之间有一个星号; 二是,函数体内部使用yield语句,定义不同的内部状态(yield在英语里的意思就是“产出”)。 最简单的Generator函数如下: g函数呢,有四个阶段,分别是'a','b','c','en...

#面试
八股文02-17
阅读

corejs 是做什么用的, 跟 Polyfill 是什么关系

关键词 :corejs 和 Polyfill 1. CoreJs 的作用 提供标准的 JavaScript 功能支持 :CoreJs 是一个 JavaScript 标准库,它提供了许多在现代 JavaScript 环境中被认为是标准的功能。这些功能包括但不限于对 ES6 + 语法的支持,如 、 、 、 等。例如,在一些较旧的浏览器中可能没有原生的 支持,CoreJs 可以提供一个兼容的 实现,使得代码能够在这些浏览器中正确运行。 跨浏览...

#面试
八股文02-17
阅读

es6 class 装饰器是如何实现的

ES6 中的装饰器是一种特殊的语法,用于动态修改类的行为。在 JavaScript 中,装饰器本质上是一个函数,它可以接受一个类作为参数,并返回一个新的类,实现了类的增强或修改。装饰器可以被用于类、方法、属性等各种地方,可以方便地实现类似 AOP、元编程等功能。 装饰器是 ES7 中的一个提案,目前还没有正式纳入标准。在 ES6 中使用装饰器需要借助第三方库,如 babel plugin transform decorators leg...

#面试
八股文02-17
阅读

iterator 和 数组 有什么关系

关键词 :iterator 对象、iterator 和 数组关系 在 JavaScript 中,Iterator(迭代器)和数组有着密切的关系: 一、数组作为可迭代对象 1. 可在迭代场景中使用 : 数组是一种内置的可迭代对象,这意味着它可以在需要可迭代对象的地方使用,比如在 循环、扩展运算符( )和 等方法中。 例如: 2. 实现了迭代协议 : 数组实现了可迭代对象的协议,即拥有一个 方法。这个方法返回一个 Iterator 对象,用...

#面试
八股文02-17
阅读

JS 浏览器事循环有哪些使用案例

关键词 :事件循环案例 JavaScript 的事件循环在实际开发中有很多使用案例,以下是一些常见的例子: 一、异步操作处理 1. 网络请求: 当进行 AJAX 请求时,浏览器不会阻塞等待响应,而是继续执行其他代码。一旦请求完成,相应的回调函数会被添加到任务队列中,等待事件循环处理。 例如,使用 或 进行网络请求: 在这个例子中,网络请求是异步的,不会阻塞主线程。当请求完成后,对应的 或 回调函数会被执行。 2. 定时器: 和 函数会在...

#面试
八股文02-17
阅读

Promise then 第二个参数和 Promise.catch 的区别是什么

方法可以接受两个参数,第一个参数是 回调函数,第二个参数是 回调函数。当 Promise 状态变为 时,将会调用 回调函数;当 Promise 状态变为 时,将会调用 回调函数。其中,第二个参数 是可选的。 方法是一个特殊的 方法,它只接受一个参数,即 回调函数。如果 Promise 状态变为 ,则会调用 回调函数;如果状态变为 ,则不会调用任何回调函数。因此, 方法可以用来捕获 Promise 中的错误,相当于使用 。 区别主要在于使...

#面试
八股文02-17
阅读

判断一个对象是否为空,包含了其原型链上是否有自定义数据或者方法。 该如何判定

关键词 :原型链相关知识 要判断一个对象是否为空,并且考虑到对象自身及其原型链上是否有自定义数据或方法,您可以使用以下的 JavaScript 函数来实现: 可以使用这个函数来判断对象是否为空,例如:

#面试
八股文02-17
阅读

如何避免重绘或者重排

如何触发重排和重绘 任何改变用来构建渲染树的信息都会导致一次重排或重绘: 添加、删除、更新DOM节点 通过display: none隐藏一个DOM节点 触发重排和重绘 通过visibility: hidden隐藏一个DOM节点 只触发重绘,因为没有几何变化 移动或者给页面中的DOM节点添加动画 添加一个样式表,调整样式属性 用户行为,例如调整窗口大小,改变字号,或者滚动。 如何避免重绘或者重排 集中改变样式 我们往往通过改变class的...

#面试
1...91011...26