Avatar ·

ما الفرق بين let و var في JavaScript؟ اشرح مع أمثلة

مرحبًا! بدأت في تعلم JavaScript وواجهت بعض الارتباك. أعلم أنه في السابق كان الجميع يعلنون المتغيرات باستخدام `var`، أما الآن في الكتب الدراسية الحديثة فيوصون باستخدام `let`. يبدو أن كلاهما يفعل نفس الشيء — إنشاء متغيرات. لكن عندما أكتب الكود، يتصرفان بشكل مختلف. هذا مثال أربكني: ```javascript var x = 10; if (true) { var x = 20; // ظننت أن هذا متغير جديد console.log(x); // 20 } console.log(x); // 20 — لماذا ليس 10؟ ``` إذا استبدلت `var` بـ `let`: ```javascript let x = 10; if (true) { let x = 20; console.log(x); // 20 } console.log(x); // 10 — وهنا 10 كما هو متوقع ``` لماذا يحدث هذا؟ وأيضًا سمعت عن "الرفع" (hoisting) — هل له علاقة بهذا؟ اشرح لي، من فضلك، كمبتدئ، متى أستخدم `let` ومتى أستخدم `var`، وما هي الفروق الرئيسية. من المهم أن أفهم هذا لتجنب الأخطاء في المستقبل. <<>>

الفروق الرئيسية: النطاق، الرفع، وإعادة التصريح