异步

单线程,只有一个线程,只能做一件事

原因,避免DOM渲染的冲突

解决方案,异步

实现方式event-loop

setTimeout

console.log(100);
setTimeout(function () {
  console.log(200);
}, 1000);
console.log(300);
console.log(400);

ajax

console.log(100);
$.ajax({
  url: 'url',
  success: function (result) { //ajax加载完才执行
    console.log(result);  //先不执行,让其他JS代码先运行
  }
});
console.log(300);
console.log(400);

问题

  1. 没按照书写方式执行,可读性差
  2. callback中不容易模块化