Hoisting في جافا سكريبت
- الصفحة السابقة مجال JS
- الصفحة التالية نمط JS صارم
الرفع (Hoisting) هو سلوك افتراضي لـ JavaScript حيث يتم رفع الإعلانات إلى أعلى.
يتم رفع الإعلانات في JavaScript
في JavaScript، يمكن إعلان المتغير بعد استخدامه.
بمعنى آخر، يمكن استخدام المتغير قبل إعلانه.
مثال 1 معمثال 2 النتائج متشابهة:
مثال 1
x = 5; // تخصيص 5 لـ x elem = document.getElementById("demo"); // العثور على العنصر elem.innerHTML = x; // عرض x في العنصر var x; // إعلان x
مثال 2
var x; // إعلان x x = 5; // تخصيص 5 لـ x elem = document.getElementById("demo"); // العثور على العنصر elem.innerHTML = x; // عرض x في العنصر
لفهم هذا، يجب أن تفهم المصطلح "الرفع".
الرفع هو سلوك افتراضي لـ JavaScript حيث يتم رفع جميع الإعلانات إلى أعلى نطاق الحالي (رفع إلى أعلى النص أو العنصر الحالي).
كلمات المفتاح let و const
باستخدام let
أو ثابت
المتغيرات المعلنة والقيم الثابتة لا يتم رفعها!
لا يتم رفع التكوين في JavaScript
يرفع JavaScript فقط الإعلان وليس التكوين.
مثال 1 معمثال 2 النتائج ليست متشابهة:
مثال 1
var x = 5; // تعريف x var y = 7; // تكوين y elem = document.getElementById("demo"); // العثور على العنصر elem.innerHTML = x + " " + y; // عرض x و y
مثال 2
var x = 5; // تعريف x elem = document.getElementById("demo"); // العثور على العنصر elem.innerHTML = x + " " + y; // عرض x و y var y = 7; // تكوين y
هل يمكن القول أن y في آخر مثال هو غير معرف؟
هذا لأنه فقط الإعلان (var y) وليس التكوين (=7) يتم رفعه إلى الأعلى.
بسبب hoisting، تم تعريف y قبل استخدامها، ولكن لأن لم يتم رفع التثبيت، يظل قيمة y غير معرفة.
مثال 2 أيضًا:
مثال
var x = 5; // تعريف x var y; // تعريف y elem = document.getElementById("demo"); // العثور على العنصر elem.innerHTML = x + " " + y; // عرض x و y y = 7; // اعطاء 7 لـ y
اعلن متغيراتك في أعلى الصفحة!
hoisting (بالنسبة لكثير من المطورين) هو سلوك غير معروف أو مغفول عنه في JavaScript.
إذا لم يفهم المطور hoisting، قد يحتوي البرنامج على أخطاء (أخطاء).
لتفادي الأخطاء، من فضلك قم دائمًا بتحديد جميع المتغيرات في بداية كل مجال.
بما أن هذا هو طريقة تفسير JavaScript للكود، من فضلك احافظ على هذه العادة الجيدة.
لا يسمح JavaScript في الوضع الصارم باستخدام المتغيرات غير المعلنة.
الرجاء تعلم الفصل التالي “استخدم صارم。”
- الصفحة السابقة مجال JS
- الصفحة التالية نمط JS صارم