监听DOM,修改页面的操作,渲染我们的样式,都是需要浏览器去处理的
这样的话,所谓的异步请求就很好理解了
指web服务器对请求作出响应时不要求你等待,这说明,浏览器解析js代码,当遇到异步任务时,不会僵持在那里不动...如果你把xhr.open()的第三个参数设置为false,那么当你点击按钮后,在点击红色的box,它是不会起作用的,只有等待响应的结果执行完后,点击红色的box,才会生效执行
?...JS是单线程的,那肯定只能同步(排队)顺序执行代码,是没有疑问的,写同步代码的好处就是好理解,坏处就是容易阻塞,只能等待上一次任务做完了,在接着做下一个任务....如果JS中不存在异步,只能自上而下执行,万一上一行解析代码的时间很长,那么下面的代码就会被阻塞。...却总是道不明白.
setTimeout里的匿名函数并没有立即执行,而是延迟了一段时间,等满足一定条件后,才去执行的,匿名函数没有立即被调用栈执行,而是添加一个队列中,专业点称为任务队列,类似这样的代码,