تابع setTimeout چه چیزی را نمایش خواهد داد?
اهمیت: 5
در کد پایین یک فراخوانی setTimeout
زمانبندی شده وجود دارد سپس یک محاسبات سنگین اجرا میشود که بیشتر از 100 میلیثانیه طول میکشد تا تمام شود.
تابع زمانبندی شده چه زمانی اجرا میشود؟
- بعد از حلقه.
- قبل از حلقه.
- در آغاز حلقه.
قرار است alert
چه چیزی را نمایش دهد؟
let i = 0;
setTimeout(() => alert(i), 100); // ?
// فرض کنیم که زمان اجرای این تابع بیشتر از 100 میلیثانیه است
for(let j = 0; j < 100000000; j++) {
i++;
}
هر تابع setTimeout
فقط بعد از اینکه کد کنونی تمام شود اجرا میشود.
متغیر i
آخرین خواهد بود: 100000000
.
let i = 0;
setTimeout(() => alert(i), 100); // 100000000
// فرض کنیم که زمان اجرای این تابع بیشتر از 100 میلیثانیه است
for(let j = 0; j < 100000000; j++) {
i++;
}