//錯誤寫法
setTimeout(console.log(2),1000);
//正常寫法....
setTimeout(function(){
console.log(2);
},1000)
//簡短寫法
setTimeout('console.log(2)',1000);
為什麼錯誤寫法也會印出2,不懂?
setTimeout第一個參數是函數,時間到會執行函數的內容至於直接把 console.log(2)這種敘述當函數放進去...我就不知道了。 求解+1
作者:
eight0 (欸XD)
2018-09-15 21:47:00作者: lachtchlee (nymph) 2018-09-15 22:25:00
setTimeout(console.log(2),1000);console.log(7);//output: 2 7 故it is not a callbacksetTimeout(function(){console.log(2)},1000);setTimeout(function(){console.log(2)},1000);console.log(7); //output 7 2 2 there are two cbs
test = function(){print 2;
我知道他沒有等一秒後才執行,而是立即顯示,不懂錯誤寫法還能正常執行出來,不會報錯
return void();}setTimeout(test,1000);那錯誤寫法就像這種效果,不知道這樣你是否比較好懂@@上面錯了,應該是 setTimeout(test(),1000);丟入 setTimeout 的是 function 跑完後返回的結果而不是 function 本身
作者: lachtchlee (nymph) 2018-09-15 23:45:00
原po 你懂run to completion嗎?希望你再仔細看看上文!
作者:
y3k (激流を制するは静水)
2018-09-16 22:29:00這問題就好像別人預期要你放把麵包放到烤麵包機裡面送過去但是你卻把烤好的麵包送了過去XD
作者:
VdustR (京)
2018-09-17 14:56:00mdn 有寫啊...