Đó là sự khác biệt về thời gian (tính bằng mili giây) kể từ khi được lên lịch chạy và khi nó thực sự chạy.
alert(setTimeout(function(a) { alert(a) }, 2000));
Nếu bạn bỏ cảnh báo đầu tiên trong thời gian, bạn sẽ thấy những cảnh báo bên cạnh là nơi -10 đến 10. Nếu bạn chờ đợi một vài giây, bạn sẽ nhìn thấy cái gì đó là khoảng thời gian bạn chờ đợi trừ năm 2000.
Điều tương tự cũng có thể nhìn thấy đối với setInterval. Chạy phần sau trong Firebug:
setInterval(function(a) { alert(a); }, 2000);
Hãy thử đóng cảnh báo nhanh chóng, nó sẽ lặp lại 0 lần nữa. Để nó mở - nó sẽ cho bạn một giá trị lớn.
Lưu ý Đây là trên Firefox Mac, nơi giữ cảnh báo mở sẽ ngừng xử lý Javascript, vì vậy bộ hẹn giờ không thực thi cho đến khi tôi đóng cảnh báo. Hành vi của các thử nghiệm ở trên có thể khác trong các trình duyệt khác
Câu hỏi hay! Tôi chưa bao giờ nghĩ đến chuyện này trước đây. – Nicole