一、settimeout瀏覽器關閉
使用setInterval設置的定時器,會在瀏覽器關閉後停止計時。而使用setTimeout來實現setInterval時,可以通過在回調函數中再次設置setTimeout來避免定時器停止計時。
let timerId = setTimeout(function tick() { console.log('tick'); timerId = setTimeout(tick, 1000); }, 1000);
二、settimeout默認時間
setTimeout函數在調用時,有兩個參數,第一個參數是回調函數,第二個參數是延遲時間,單位為毫秒。如果只傳遞一個參數,則默認延遲時間為0。
let timerId = setTimeout(function() { console.log('Hello World'); }, 0);
三、settimeout默認幾秒
setTimeout函數的第二個參數表示延遲的時間,單位是毫秒。所以如果要延遲1秒,就要將第二個參數設為1000毫秒。
let timerId = setTimeout(function() { console.log('Hello World'); }, 1000);
四、settimeout作用
setTimeout函數是用來在指定時間後執行一次回調函數的。可以在回調函數中進行一些定時操作,比如定時更新頁面內容等。
let timerId = setTimeout(function() { document.getElementById('my-div').innerHTML = 'New Content'; }, 5000);
五、settimeout第二個參數
setTimeout函數的第二個參數表示延遲的時間,單位是毫秒。
let timerId = setTimeout(function() { console.log('Hello World'); }, 1000);
六、settimeout方法
setTimeout函數返回一個計時器的ID值,可以用來在回調函數執行之前取消定時器。
let timerId = setTimeout(function() { console.log('Hello World'); }, 1000); clearTimeout(timerId);
七、settimeout時間不準
setTimeout函數並不是一定在指定的延遲時間之後立即執行回調函數,而是在指定的延遲時間之後插入到執行隊列中。如果執行隊列中有其他代碼正在執行,回調函數可能會被推遲到更晚的時間執行。
setTimeout(function() { console.log('Hello'); }, 0); for (let i = 0; i < 1000000; i++) { // Do nothing } console.log('World');
八、settimeout設置次數
雖然setTimeout無法準確計時,但我們可以通過在回調函數中設置定時器的次數來多次執行。可以使用一個計數器變數來控制定時器的執行次數。
let count = 0; function timer() { console.log('tick'); count++; if (count < 10) { setTimeout(timer, 1000); } } setTimeout(timer, 1000);
九、settimeout0作用
為什麼使用setTimeout(func, 0)可以將代碼推入事件循環隊列末尾?
setTimeout(func, 0)的含義是讓代碼非同步執行,讓瀏覽器在下一次事件循環時執行。當執行非同步代碼時,其執行環境已經從當前任務的執行環境中分離出來。這就使得非同步代碼執行的時間與當前代碼並不相關,也就可以將其推遲到隊列的末尾執行。
setTimeout(function() { console.log('Hello World'); }, 0);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/184877.html