ما الفرق بين 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`، وما هي الفروق الرئيسية. من المهم أن أفهم هذا لتجنب الأخطاء في المستقبل.
<<>>