var t = true;
window.setTimeout(function (){
t = false;
},1000);
while (t){}
alert('end');
结果:死循环
解释:js是单线程的,while和alert都是同步代码,所以会先执行while再alert,而while循环是一个死循环,所以alert也不会执行。再说setTimeout,它是异步代码,因为js的工作机制是当主线程中没有执行任何同步代码的前提下才会执行异步代码,所以setTimeout只能等while完了才会执行,但死循环是永远不会停止的,所以setTimeout也不会执行。
小结:本题目主要考的是js的单线程、和同步异步处理