鍍金池/ 問答/HTML/ 關(guān)于JS的定時(shí)器疑惑

關(guān)于JS的定時(shí)器疑惑

關(guān)于JS的定時(shí)器疑惑,JS不是單線程嗎,為什么這個(gè)三個(gè)定時(shí)器可以同時(shí)運(yùn)行?一瞬間都彈出1來

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <script type="text/javascript">
            setTimeout(function(){
                console.log(1);
            },3000)
            setTimeout(function(){
                console.log(1);
            },3000)
            setTimeout(function(){
                console.log(1);
            },3000)
        </script>
    </body>
</html>
回答
編輯回答
涼薄

js的單線程是針對(duì)事件循環(huán)層面的。但是在虛擬機(jī)層面它是多線程的。你可以理解為多人同時(shí)做事情,但最后是排隊(duì)匯報(bào)成果

2017年10月12日 20:36
編輯回答
賤人曾

主要是你的回調(diào)程序沒有發(fā)生阻塞,否則你就可以看到效果了。

2017年1月29日 00:16
編輯回答
青瓷

可以了解一下瀏覽器相關(guān)的event loop

2018年6月14日 10:46
編輯回答
朕略萌

因?yàn)槟愣〞r(shí)之后相當(dāng)于將你的三個(gè)方法掛起,暫時(shí)不理會(huì),等到3s之后再去執(zhí)行,因?yàn)槟氵@里都是3s,所以幾乎時(shí)同時(shí)執(zhí)行的,但其實(shí)這三個(gè)也是有順序執(zhí)行的。

2017年3月19日 01:20
編輯回答
撥弦

看起來同時(shí),還是有先后順序,可以把彈出來的1改成1.2.3看看順序

2018年2月14日 19:50