javascript的执行顺序 javascript 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 输出的结果为什么是>>>>>>>>>>>F1开始执行F2开始执行F2执行结束 F1执行结束 <script type="text/javascript">function f1(){ console.log("F1开始执行"); setTimeout (function () { console.log("F1执行结束"); },3000);} function f2(){ console.log("F2开始执行"); console.log("F2执行结束"); } f1(); f2();</script>就这样执行的! f1() 怎么没执行完?setTimeout 只不过是设置定时器,在 3 秒后打印 “F1执行结束”其实 F1 早就执行完了 因为你用了定时器 function f1(){ console.log("F1开始执行"); setTimeout (function () { console.log("F1执行结束"); },3000);} function f2(){ console.log("F2开始执行"); console.log("F2执行结束"); } f1(); f2(); F1开始执行 - 进入执行队列(F1执行结束) -F2开始执行 -F2执行结束 -3秒(F1执行结束) - 哦,你这么一说我突然反应过来了,还有一个问题为什么代码这么function f1(callback){ setTimeout (function () { console.log("F1开始执行"); for(var i=0;i<1000;i++){ console.log(i); } console.log("F1执行结束"); callback(); },5000);}function f2(){ console.log("F2开始执行"); console.log(10+2); console.log("F2执行结束");}f1(f2);写就异步了! 涉及到主异步函数,与闭包。f1() 开始执行 -> 执行 console.log("F1开始执行") - > setTimeout() 函数生成 timer 对象,同时回调函数, 进入 event queue -> f1()执行结束->f2()执行开始-> 执行console.log("F2开始执行") -> 执行 console.log("F2执行结束") ->javascript 本身源代码执行完毕-> 开始执行 event queue 队列中的函数 -> 执行: function(){console.log("F1 执行结束")} (这个函数回到f1() 作用域内执行)-> 程序结束 局部刷新一个DIV块 求教用js做一个qq栏的问题! <div>与嵌套<div>事件问题 【高手进】Ext 中的下拉框怎么获取里面的值 使用Javascript能实现操作Domino对象收发邮件吗?(很具有挑战性的问题) 怎样在客户端存储数据减少对SERVER的访问 谁知道这是什么编码? document.getElementsByName小问题 我把17173下载站首页按字母选游戏那个弄到自己机器上面读取代码到首页出来中文是乱码,请问怎么搞``? 这样的写法有错吗? extjs panel不关闭 JS问题
F1开始执行
F2开始执行
F2执行结束
F1执行结束
<script type="text/javascript">
function f1(){
console.log("F1开始执行");
setTimeout (function () {
console.log("F1执行结束");
},3000);
}
function f2(){
console.log("F2开始执行");
console.log("F2执行结束");
}
f1();
f2();
</script>就这样执行的!
setTimeout 只不过是设置定时器,在 3 秒后打印 “F1执行结束”
其实 F1 早就执行完了
console.log("F1开始执行");
setTimeout (function () {
console.log("F1执行结束");
},3000);
}
function f2(){
console.log("F2开始执行");
console.log("F2执行结束");
}
f1();
f2(); F1开始执行 - 进入执行队列(F1执行结束) -F2开始执行 -F2执行结束 -3秒(F1执行结束) -
哦,你这么一说我突然反应过来了,还有一个问题为什么代码这么function f1(callback){ setTimeout (function () { console.log("F1开始执行"); for(var i=0;i<1000;i++){
console.log(i);
}
console.log("F1执行结束"); callback(); },5000);}
function f2(){ console.log("F2开始执行");
console.log(10+2);
console.log("F2执行结束");}
f1(f2);写就异步了!
执行 console.log("F1开始执行") - >
setTimeout() 函数生成 timer 对象,同时回调函数, 进入 event queue ->
f1()执行结束->
f2()执行开始->
执行console.log("F2开始执行") ->
执行 console.log("F2执行结束") ->
javascript 本身源代码执行完毕->
开始执行 event queue 队列中的函数 ->
执行: function(){
console.log("F1 执行结束")
} (这个函数回到f1() 作用域内执行)-> 程序结束