เริ่มตัวจับเวลาใน JavaScript

แม้ว่าฟังก์ชัน setTimeout จะไม่ได้ถูกออกแบบมา สำหรับการสร้างตัวจับเวลา แต่เราก็ยังสามารถ สร้างมันขึ้นมาได้ด้วยฟังก์ชันนี้ หากใช้ประโยชน์จาก recursion:

javascriptlet i = 0;

function timer() {
  setTimeout(function() {
    console.log(++i);
    
    timer(); // เรียกตัวเอง
  }, 1000);
}
timer();

การหยุดตัวจับเวลาดังกล่าวทำได้ง่ายๆ โดยไม่ให้ เกิด recursion ขึ้น:

javascriptlet i = 0;

function timer() {
  setTimeout(function() {
    console.log(++i);
    
    if (i < 10) { // เริ่มทำงานก็ต่อเมื่อตัวนับน้อยกว่า 10
      timer();
    }
  }, 1000);
}
timer();
Задание 1

พิมพ์ตัวเลข 0 ไปยังคอนโซล หลังจากนั้น หนึ่งวินาทีให้พิมพ์ตัวเลข 1 หลังจากสอง วินาทีให้พิมพ์ตัวเลข 2 หลังจาก 3 วินาทีให้พิมพ์ตัวเลข 3 และทำเช่นนี้ต่อไป เรื่อยๆ อย่างไม่สิ้นสุด