أهلاً بك! اليوم رح نتكلم عن المؤقتات في JavaScript، وهي أدوات مهمة جداً للتحكم في توقيت تنفيذ الكود. بدون كثرة كلام، خلينا ندخل بالموضوع مباشرة.
1. setTimeout() - نفّذ مرة واحدة بعد فترة
هذي الدالة تخليك تنفذ كود معين مرة واحدة فقط بعد مرور فترة زمنية محددة (بالمللي ثانية).
شكلها كذا:
setTimeout(function() {
// الكود اللي تبغى تنفذه
}, delayInMilliseconds);
// أو باستخدام دالة سهمية (Arrow Function)
setTimeout(() => {
// الكود هنا
}, delayInMilliseconds);
مثال بسيط:
console.log("الرسالة الأولى");
setTimeout(() => {
console.log("الرسالة هذي بتظهر بعد ثانيتين!");
}, 2000); // 2000 مللي ثانية = 2 ثانية
console.log("الرسالة الثانية");
ملاحظة:
setTimeoutترجع لك معرف (ID) تقدر تستخدمه عشان تلغي المؤقت قبل ما يتنفذ، وهذي وظيفةclearTimeout().
2. clearTimeout() - إلغاء مؤقت setTimeout
لو شغلت setTimeout وبغيت تلغيه قبل ما يتنفذ، تستخدم clearTimeout() وتعطيها المعرف اللي رجعته لك setTimeout.
شكلها كذا:
let timerId = setTimeout(() => {
console.log("هذي الرسالة ما راح تظهر!");
}, 5000);
// بعد فترة قصيرة، قررنا نلغي المؤقت
clearTimeout(timerId);
console.log("تم إلغاء المؤقت بنجاح.");
3. setInterval() - نفّذ بشكل متكرر
على عكس setTimeout اللي تنفذ الكود مرة واحدة، setInterval() تخليك تنفذ كود معين بشكل متكرر كل فترة زمنية محددة.
شكلها كذا:
setInterval(function() {
// الكود اللي تبغى تنفذه كل فترة
}, intervalInMilliseconds);
مثال: عداد يطبع رقم كل ثانية:
let counter = 0;
const intervalId = setInterval(() => {
counter++;
console.log(العداد: ${counter});
if (counter >= 5) {
clearInterval(intervalId); // نوقف العداد لما يوصل 5
console.log("تم إيقاف العداد.");
}
}, 1000); // كل ثانية
ملاحظة:
setIntervalأيضاً ترجع لك معرف (ID) تقدر تستخدمه عشان توقف التكرار، وهذي وظيفةclearInterval().
4. clearInterval() - إيقاف مؤقت setInterval
عشان توقف setInterval من التكرار، تستخدم clearInterval() وتعطيها المعرف اللي رجعته لك setInterval.
شف المثال اللي فوق مع setInterval()، استخدمنا clearInterval(intervalId) عشان نوقف العداد بعد 5 مرات.
نصائح سريعة ومهمة:
- الدقة: المؤقتات في JavaScript ليست دقيقة 100%، يعني لو طلبت تنفيذ كود بعد
1000ms، ممكن يتنفذ بعد1001msأو1005msحسب حمل النظام. thisفي المؤقتات: انتبه لقيمةthisداخل الكولباك (Callback) إذا كنت تستخدم دوال عادية. دوال الأسهم (Arrow Functions) تحافظ على قيمةthisمن السياق المحيط بها، وهذي ميزة حلوة.- الاستخدام الصحيح: استخدم
setTimeoutللأشياء اللي تتنفذ مرة واحدة، وsetIntervalللأشياء المتكررة زي تحديث ساعة أو عداد.
هذا كان درس سريع ومباشر عن المؤقتات في JavaScript. أتمنى يكون الشرح واضح ومفيد!