【JS基本】异步和单线程

同步和异步的区分是什么?

js是单线程的,只能同时做一件事,所以就须要异步

同步会壅塞代码实行,而异步不会

alert是同步,setTimeout是异步

// 异步
console.log(100);
setTimeout(function () {
    console.log(200);
}, 1000);
console.log(300);
// 同步
console.log(100);
alert(200); // 1秒以后点击确认
console.log(300);

什么时候须要异步?
在可能发生守候的状况,守候过程当中不能像alert一样壅塞顺序举行。因而,一切“守候的状况”都须要异步。

前端运用异步的场景有哪些?

定时使命:setTimeOut,setInterval

收集要求:ajax要求,动态 <img> 加载

事宜绑定

// ajax要求
console.log('start');
$.get('./data1.json', function (data) {
    console.log(data);
});
console.log('end');
// <img> 加载
console.log('start');
var img = document.createElement('img');
img.onload = function () {
    console.log('loaded');
};
img.src = '/xxx.png';
console.log('end');
// 事宜绑定
console.log('start');
document.getElementById('btn1').addEventListener('click', function () {
    alert('clicked');
});
console.log('end');
    原文作者:ican
    原文地址: https://segmentfault.com/a/1190000017451043
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞