[JavaScript初级面试]5. JS基础-异步

时间:2021-09-05
本文章向大家介绍[JavaScript初级面试]5. JS基础-异步,主要包括[JavaScript初级面试]5. JS基础-异步使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

题目

  • 同步和异步的区别是什么?
  • 手写用Promise加载一张图片
  • 前端使用异步的场景哪些?
  • setTimeout执行顺序

单线程

JS是单线程语言,只能同时做一件事儿;
JS和DOM渲染共用同一个线程,因为JS可修改DOM;
浏览器和nodejs已经支持JS启动进程,如web worker

单线程弊端

遇到等待(网络请求,定时任务)会暂停执行,用户界面无响应;

解决单线程弊端的方式:

采用异步执行方式,以回调callback函数的形式

// 同步方式:
console.log(100);
alert(200); // 同步执行,阻塞代码执行
console.log(300);
// 异步方式:
console.log(100);
setTimeout(() => {// callback函数异步调用,不会阻塞代码执行
  console.log(200);
});
console.log(300);

异步的应用场景

  • 网络请求,如ajax图片加载
  • 定时任务,如setTimeout

异步带来的问题

callback hell : 回调函数里面继续调用了回调函数

解决异步带来的callback hell问题

使用Promise

本文来自博客园,作者:Max力出奇迹,转载请注明原文链接:https://www.cnblogs.com/welody/p/15214486.html

如果觉得文章不错,欢迎点击推荐

原文地址:https://www.cnblogs.com/welody/p/15214486.html