javascript中的异步代码:
1、ajax
ajax中的onreadyStatechange()是监听事件;
2、定时器和延时器
setInterval 和 setTimeout
3、所有的监听事件都为异步的
onclick、onmouseover.........
js在运行中,只要遇到异步代码片段,就会忽略异步代码,抛给异步线程。先保证主线程代码执行完,再执行异步线程的代码
例:
for(var i=0; i<10; i++){
setTimeout(function(){
console.log(i);
})
}
//打印出来的是10个10
for(var i=0; i<10; i++){
(function(index){
setTimeout(function(){
console.log(index);
},0)
})(i)
}
//这里打印的就是0~9