Zamanlayıcılar
Çaydanlık bir paragraftır, #pot. Betik içine cold yazar. Burada form yok, dükkân zili de yok.
Zamanlayıcı betiği durdurmaz. Sonraki satır hemen çalışır. İşlev sonra çalışır. 400 milisaniyelik zaman aşımı hot yazar. İptal edersen çaydanlık cold kalır. Aralık 1, 2, 3 sayar ve durur. Satır cold / hot / 3 olur.
Bu zil değil
Önceki sayfa same / 4 / undefined / number dizisini birleştirmişti. Belge, bir var, bir let ve genişliğin türüydü. Bu sayfa onları okumaz. cold ve hot, zamanlayıcının çaydanlığa yazdığı sözcüklerdir.
Yeni soru: sözcük ne zaman değişir?
Sonraki satır beklemez
setTimeout bir işlev ve milisaniye cinsinden gecikme ister. 400, saniyenin onda dördüdür, 400 saniye değil. Çağrının altındaki günlük önce gelir, çaydanlık hâlâ cold’tur. İşlev sonra hot yazar ve onu günlükler.
let pot = document.getElementById("pot");
pot.textContent = "cold";
setTimeout(function () {
pot.textContent = "hot";
console.log(pot.textContent);
}, 400);
console.log(pot.textContent);
İlk günlük cold. Sonraki hot. Betik 400 milisaniye oturmadı.
Kaynamayı iptal et
setTimeout bir kimlik döndürür. O kimlikle clearTimeout işlevi bırakır. Çaydanlık cold olmuştu ve hot hiç gelmez.
let pot = document.getElementById("pot");
pot.textContent = "cold";
let boil = setTimeout(function () {
pot.textContent = "hot";
}, 400);
clearTimeout(boil);
console.log(pot.textContent);
Günlük cold. İşlev bırakıldı, çaydanlık hot olmaz.
Üç kez dök
setInterval işlevi tekrar tekrar çağırır, burada her 300 milisaniyede. Her çağrı bir ekler. 3’te clearInterval durdurur. Günlük o 3’tür, bitmeyen bir tırmanış değil.
let pot = document.getElementById("pot");
let n = 0;
let tick = setInterval(function () {
n = n + 1;
pot.textContent = String(n);
if (n === 3) {
clearInterval(tick);
console.log(pot.textContent);
}
}, 300);
Günlük 3. Aralığın kimliği tick. clearInterval olmasa sayaç yükselmeye devam ederdi.
Kimlik bir sayıdır
setTimeout’un döndürdüğü değer bir sayıdır. Gecikme değildir, hot sözcüğü de değildir. Bu parça boş bir işlevi yalnız türü okumak için kurar, sonra iptal eder.
let boil = setTimeout(function () {}, 400);
console.log(typeof boil);
clearTimeout(boil);
Günlük number.
Sıfır da sonradır
0 gecikme «sonraki satırdan önce» demek değildir. İşlev bu betik bitene kadar bekler. Çaydanlık now olur, o sözcük günlüklenir, ancak sonra işlev later günlükler.
let pot = document.getElementById("pot");
pot.textContent = "now";
setTimeout(function () {
console.log("later");
}, 0);
console.log(pot.textContent);
İlk günlük now. İkincisi later. Sıfır kuyruğu atlamadı.
Gecikme ne demek
Birim milisaniyedir. Çaydanlık satırı bu sayfanın kullandığı satırdır.
📊 Gecikme ne demek
| Gecikme | Demek | Karıştırması kolay |
|---|---|---|
| 0 | bu betik bitince | sonraki satırdan önce |
| 400 | 0,4 saniye | 400 saniye |
| 1000 | bir saniye | bir dakika |
Çaydanlığın altındaki satır
Betik cold yazar ve o sözcüğü hemen saklar. 400 milisaniyelik zaman aşımı hot saklar. Aralık her 300 milisaniyede bir ekler, 3’te durur ve üç sözcüğü birleştirir. hot üçüncü dökmeden önce saklanır, çünkü 400, 900’den küçüktür.
<!DOCTYPE html>
<html>
<head>
<title>kettle-timer — page</title>
</head>
<body>
<p id="pot">blank</p>
<p id="line">…</p>
<script>
let pot = document.getElementById("pot");
let seen = [];
pot.textContent = "cold";
seen.push(pot.textContent);
setTimeout(function () {
pot.textContent = "hot";
seen.push("hot");
}, 400);
let n = 0;
let tick = setInterval(function () {
n = n + 1;
if (n === 3) {
clearInterval(tick);
seen.push(String(n));
document.getElementById("line").textContent = seen.join(" / ");
}
}, 300);
</script>
</body>
</html>
Satır cold / hot / 3. cold hemen idi. hot zaman aşımından geldi. 3 aralıktan geldi. blank gitti. same / 4 / undefined / number önceki sayfadır.
Tezgâhta
- Çaydanlığı cold yap, hot’u 400 milisaniye için kur ve hemen günlükle. İlk günlük cold. Sonraki hot.
- hot kur, çalışmadan önce
clearTimeoutçağır. Günlük cold kalır. setIntervalile say ve 3’te dur. Günlük 3.- Kimliğin
typeofdeğerini oku. Günlük number. - Gecikmeyi 0 yap. Günlükler now, sonra later.
- Sayfa satırını oku: cold / hot / 3.
Tezgâh hataları
Çaydanlık cold, hot ya da bir sayaç gösterir. Zilin satırını göstermez.
- İlk günlüğün hot olmasını beklemek
clearTimeout’u unutmak, iptal etmek istediğin kaynama yine hot yazar- Aralığın 3’ü geçmesine izin vermek
- 400’ü 400 saniye okumak
- 0 gecikmeyi «sonraki satırdan önce» saymak
- Satırı same / 4 / undefined / number diye okumak
Bunu tut
- Sonraki satır, zaman aşımı işlevinden önce çalışır
clearTimeouto işlevi bırakır, çaydanlık cold kalırclearIntervalsayacı 3’te kesersetTimeoutkimliği bir sayıdır- 0 gecikme de now’u later’dan önce günlükler
- Sayfa satırı cold / hot / 3
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek