当前位置:   article > 正文

js面试题系列之异步_js 异步题

js 异步题
1、什么是单线程?和异步有什么关系?

答:

单线程: 同一时间只做一件事情。
原因: 避免dom渲染冲突
解决方案: 异步

单线程的小例子:
console.log(100)
let sum = 0;
for(let i = 0; i < 1000000000; i++) {
	sum ++;
}
console.log(sum);
//如果sum没有执行完,下面的代码就不会执行了
console.log(200)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

如何理解避免渲染dom
  • 首先: 浏览器需要渲染dom
  • 其次: js也可以渲染dom
  • 那么,浏览器的渲染就要等js渲染执行完再执行,他们共享一个线程。
  • 然而: js如果可以多线程的话,两段js同时渲染dom又会冲突
  • 所以: js只能是单线程

解决方案: 异步

为什么需要异步? 如果遇到需要等待的,线程就暂停了,一直等下去是不合理的。所以需要等待的先等着,线程先执行事件队列里面的其他事情,都做完了,再来看看等待的东西。

console.log(100)
setTimeout(() => {
	console.log(10)
}, 1000)
//遇到setTimeout,就先执行下面的代码。
console.log(200)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

异步有哪些问题?

callback: 异步之后要执行的函数就是callback

  1. 没有按照书写顺序执行
  2. callback中不容易模块化

2、什么是event-loop(事件轮询)

答:

3、是否用过jquery的Deferred?
4、promise的基本使用和原理是什么?
5 、介绍一下async/await?和promise的对比如何?
6、介绍一下异步的解决方案?
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/555150?site
推荐阅读
相关标签
  

闽ICP备14008679号