- بواسطة x32x01 ||
لو انت لسه بادئ في JavaScript، أكيد سمعت عن الكلمات المفتاحية var, let, و const. بس تعرف الفرق بينهم إيه بالظبط؟ 🤔
في البوست ده هنتكلم بطريقة سهلة وبأمثلة واضحة عن كل واحد فيهم، وكمان هتشوف ازاي تستخدمهم صح في مشاريعك.
في ES6 (المعيار الحديث للغة)، ظهر let و const علشان يحسنوا طريقة كتابة الكود ويخلوها أقرب للغات البرمجة التانية زي C# أو Java.
يعني باختصار:
زي ما انت شايف، القيمة الأخيرة هي اللي هتظهر.
زي ما شايف، القيمة اتغيرت برا الـ if كمان.
يعني مينفعش تغير قيمته بعد تعريفه.
في البوست ده هنتكلم بطريقة سهلة وبأمثلة واضحة عن كل واحد فيهم، وكمان هتشوف ازاي تستخدمهم صح في مشاريعك.
إيه هي Var و Let و Const؟ 🔑
الكلمات دي (var, let, const) هي المسؤولة عن إنشاء المتغيرات في JavaScript.في ES6 (المعيار الحديث للغة)، ظهر let و const علشان يحسنوا طريقة كتابة الكود ويخلوها أقرب للغات البرمجة التانية زي C# أو Java.
يعني باختصار:
- var قديمة شوية ومرنة جدًا.
- let ظهرت حديثًا لتنظيم المتغيرات وحمايتها من الأخطاء.
- const للثوابت اللي مش عايز قيمتها تتغير.
Var في JavaScript 🟢
1- Redeclare المتغيرات
ممكن تعيد تعريف var أكتر من مرة بدون أي مشكلة: JavaScript:
var x = 1;
var x = 2;
console.log(x); // 2 2- الوصول للمتغير قبل تعريفه (Access Before Declare) 🕵️♂️
لو حاولت تستخدم var قبل ما تعرفه، هيديك undefined مش Error: JavaScript:
console.log(a); // undefined
var a = 10; 3- Var مش Block Scoped ❌
يعني لو معرفت var جوه شرط أو حلقة، ممكن تستخدمه براهم: JavaScript:
var x = 10;
if(x == 10){
var x = 20;
console.log(x); // 20
}
console.log(x); // 20 4- Var تابع للـ Function Scoped 🛠️
المتغير يكون متاح جوا الـ function بس، براها مش هينفع: JavaScript:
function Example(){
if(true){
var x = 5;
}
console.log(x); // 5
}
Example();
console.log(x); // Error Let في JavaScript 🟡
1- مينفعش Redeclare ❌
لو حاولت تعيد تعريف let هيدي Error: JavaScript:
let x = 1;
let x = 2;
console.log(x); // Error 2- Access Before Declare ❌
لو استخدمت المتغير قبل تعريفه هيدي Error مش undefined: JavaScript:
console.log(a); // a is not defined
let a = 10; 3- Let Block Scoped ✅
يعني المتغير متاح جوه الـ block اللي اتعرف فيه بس: JavaScript:
let x = 10;
if(x == 10){
let x = 20;
console.log(x); // 20
}
console.log(x); // 10 4- Let Function Scoped
مش هينفع تستخدمه برا الـ function: JavaScript:
function Example(){
if(true){
let x = 5;
}
console.log(x); // Error
}
Example(); Const في JavaScript 🔵
Const زي let بالظبط من ناحية الـ scope، بس الفرق إنه ثابت.يعني مينفعش تغير قيمته بعد تعريفه.
JavaScript:
const x = 10;
x = 20; // Error 1- مينفعش Redeclare
زي الـ let، متقدرش تعمل redeclare للمتغير.2- Access Before Declare
لو استخدمت قبل التعريف هيطلع Error.3- Const Block Scoped و Function Scoped
زي الـ let تمام، ممكن تستخدمه جوا blocks أو functions بس مش براهم.الخلاصة: إيه اللي تستخدمه وإمتى؟ 🤓
- استخدم var بس لو شغال على كود قديم أو مع legacy projects.
- استخدم let لما عايز متغير قابل للتغيير جوه block أو function.
- استخدم const للثوابت اللي قيمتها مش هتتغير طول الكود.
مثال عملي على Var vs Let vs Const 💡
JavaScript:
var nameVar = "Ahmed";
let nameLet = "Sara";
const nameConst = "Ali";
// تغيير القيم
nameVar = "Mostafa"; // تمام
nameLet = "Mona"; // تمام
nameConst = "Omar"; // Error
console.log(nameVar); // Mostafa
console.log(nameLet); // Mona
console.log(nameConst); // Error نصايح سريعة للمبتدئين 🚀
- دايمًا حاول تستخدم let بدل var لتجنب الأخطاء.
- استخدم const للثوابت، ده بيخلي كودك أكثر أمان.
- ركز على ES6 وابتعد عن الطرق القديمة لو ممكن.
- جرب الأمثلة عملي على المتصفح أو Node.js عشان تثبت المعلومات.
التعديل الأخير: