رفع جافا سكريبت
الرفع هو سلوك JavaScript الافتراضي لنقل الإعلانات إلى الأعلى.
يتم رفع تصريحات JavaScript
في JavaScript ، يمكن التصريح عن متغير بعد استخدامه.
بعبارات أخرى؛ يمكن استخدام متغير قبل التصريح عنه.
يعطي المثال 1 نفس النتيجة كما في المثال 2 :
مثال 1
x = 5; // Assign 5 to x
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x;
// Display x in the element
var x; // Declare x
مثال 2
var x; // Declare x
x = 5; // Assign 5 to x
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x;
// Display x in the element
لفهم هذا ، عليك أن تفهم مصطلح "الرفع".
الرفع هو سلوك JavaScript الافتراضي لنقل جميع الإعلانات إلى أعلى النطاق الحالي (إلى أعلى البرنامج النصي الحالي أو الوظيفة الحالية).
الكلمات الرئيسية Let and const
المتغيرات التي تم تعريفها بواسطة let
ويتم const
رفعها إلى أعلى الكتلة ، ولكن لم تتم تهيئتها .
المعنى: تدرك كتلة الكود المتغير ، لكن لا يمكن استخدامه حتى يتم التصريح عنه.
استخدام let
متغير قبل التصريح عنه سينتج عنه
ReferenceError
.
المتغير موجود في "منطقة ميتة مؤقتة" من بداية الكتلة حتى إعلانها:
مثال
سينتج عن ذلكReferenceError
:
carName = "Volvo";
let carName;
يعد استخدام const
متغير قبل الإعلان عنه خطأ نحويًا ، لذلك لن يتم تشغيل الكود.
مثال
هذا الرمز لن يعمل.
carName = "Volvo";
const carName;
اقرأ المزيد حول let and const في JS Let / Const .
لم يتم رفع عمليات تهيئة JavaScript
يرفع JavaScript الإعلانات فقط ، وليس التهيئة.
المثال 1 لا يعطي نفس النتيجة مثل المثال 2 :
مثال 1
var x = 5; // Initialize x
var y = 7; // Initialize y
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y; // Display x and y
مثال 2
var x = 5; // Initialize x
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y; // Display x and y
var y = 7; // Initialize y
هل يعقل أن y غير معرف في المثال الأخير؟
هذا بسبب رفع التصريح (var y) فقط ، وليس التهيئة (= 7) إلى الأعلى.
بسبب الرفع ، تم التصريح عن y قبل استخدامه ، ولكن نظرًا لعدم رفع التهيئة ، تكون قيمة y غير محددة.
المثال 2 هو نفس الكتابة:
مثال
var x = 5; // Initialize x
var y; // Declare y
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y; // Display x and y
y = 7; // Assign 7 to y
أعلن عن المتغيرات الخاصة بك في الأعلى!
الرفع (بالنسبة للعديد من المطورين) هو سلوك غير معروف أو تم التغاضي عنه لجافا سكريبت.
إذا كان المطور لا يفهم الرفع ، فقد تحتوي البرامج على أخطاء (أخطاء).
لتجنب الأخطاء ، أعلن دائمًا عن جميع المتغيرات في بداية كل نطاق.
نظرًا لأن هذه هي الطريقة التي يفسر بها JavaScript الشفرة ، فهي دائمًا قاعدة جيدة.
لا تسمح JavaScript في الوضع المتشدد باستخدام المتغيرات إذا لم يتم التصريح عنها.
دراسة "استخدام صارم" في الفصل التالي.