x32x01
أدارة أكتب كود
- بواسطة x32x01 ||
الفرق بين var ,let ,const في ال javaScript.
ال var,let,const هما عباره عن ال keywords الموجودة في ال javaScript المسؤله عن انشاء ال variables.
وهنعرف الطرق الجديدة الي ظهرت في معايير ES6 لانشاء ال variables, وهي معايير بتنزلها منظمة عالميه للغة ال javaScript علشان تخلي ال javaScript ليها معايير ثابته علشان اللغه دي شاذة شويه بالنسبه للغات البرمجه التانيه فعلشان نقربها للغات البرمجه التانيه ظهرت ال ES6.
يعني عندنا في ES6 ظهر two keywords وهما ال let,const ,نقدر عن طريقهم ننشأ variables.
هنا عمل override وهيطبع اخر قيمه اللي هي 2 بس , وبكدا عمل redeclare للvariable عادي بدون اي مشكله.
2- ِِAccess before declare (undefined)
وبكدا لو عملت access علي variable قبل ال declaration بتاعه هيقولك undefined.
3- -Var is a not block scoped
يعني ممكن استخدم ال variable خارج ال scope الي متعرف فيه.
هنا طبع في الاتنين 20, لان جوا ال block scope بتاع ال if معرف x=20 فطبع ال 20 , وبرا ال if condition عمل override علي x=10 ل x=20 وطبع ال 20 بردوا , لان ال var is a global scope (not block scope) علشان كدا عمل override لل x.
-Var is a function scoped
يعني ال variable متاح جوا ال scope الخاص بال function, ولا يمكن استخدامه خارج هذا ال scope بتاع ال function.
هيطبع 5 , لان استخدمة ال x جوا ال function scope الي متعرفه فيه , انما لو استخدمة ال x خارج function scope هيطلع Error.
-- طب لو حطينا let بدل الـ var ؟
هنا هيطلع Error, هيقولك ان x معموله declare قبل كدا يعني موجود.
2- Access before declare (ُError)
هنا لو عملت access لل variable قبل ال declaration بتاعه, هيطلعلك رسالة error,يعني هيقولك ايه الي حصل عكس ال var.
3- -let is a Block Scope
يعني مينفعش استخدم ال variable خارج ال scope الي متعرف فيه, يعني متاح جوا ال scope فقط.
هنا طبع في الاولي 20 علشان معرف x=20 جوا ال scope بتاع ال if, وطبع في التانيه 10 لان let is a block scope ,وال x قيمتها خارج ال scope ب10.
-let is a function scoped
نفس الكلام بردوا مينفعش استخدم ال variable خارج ال scope الخاص بال function.
هنا هيقولك ان x not defined علشان استخدمة ال x خارج ال scope الي متعرفه فيه, وال y نفس الكلام علشان استخدمة ال y خارج ال function scope.
هنا هيطلع error علشان x داا const يعني مينفعش اعمله override لانه ثابت مش متغير لا يمكن تغيير قمته.
وهنا ال const زي ال let بالظبط كل الي ينطبق علي let ينطبق علي const.
1- مينفعش اعمل redeclare لل variable زي ال let.
2- Access before declare (ُError)
نفس الكلام بردوا الي في let , لو عملت access علي ال variable قبل ال declaration بتاعه هيطلعلك رسالة error.
3- Const is a block scoped and function scoped
زي ال let بالظبط مينفعش access علي variable خارج ال scope بتاع ال function او ال block scoped الي متعرف فيه.
وبكدا دا توضيح بسيط بأمثله علي الفرق بين ال Var ,Let ,Const في ال javaScript.
ال var,let,const هما عباره عن ال keywords الموجودة في ال javaScript المسؤله عن انشاء ال variables.
وهنعرف الطرق الجديدة الي ظهرت في معايير ES6 لانشاء ال variables, وهي معايير بتنزلها منظمة عالميه للغة ال javaScript علشان تخلي ال javaScript ليها معايير ثابته علشان اللغه دي شاذة شويه بالنسبه للغات البرمجه التانيه فعلشان نقربها للغات البرمجه التانيه ظهرت ال ES6.
يعني عندنا في ES6 ظهر two keywords وهما ال let,const ,نقدر عن طريقهم ننشأ variables.
تعالي نعرف الفرق بين الـ var, let ,const.
الـ var
1- ممكن اعمل redeclare لل variable بدون اي مشكله. Code:
var x=1;
var x=2;
console.log(x); //2
2- ِِAccess before declare (undefined)
Code:
console.log(a); //undefined
var a=10;
3- -Var is a not block scoped
يعني ممكن استخدم ال variable خارج ال scope الي متعرف فيه.
JavaScript:
var x=10;
if(x==10){
var x=20;
console.log(x); //20
}
console.log(x); //20
هنا طبع في الاتنين 20, لان جوا ال block scope بتاع ال if معرف x=20 فطبع ال 20 , وبرا ال if condition عمل override علي x=10 ل x=20 وطبع ال 20 بردوا , لان ال var is a global scope (not block scope) علشان كدا عمل override لل x.
-Var is a function scoped
يعني ال variable متاح جوا ال scope الخاص بال function, ولا يمكن استخدامه خارج هذا ال scope بتاع ال function.
JavaScript:
function Example(){
if (true){
var x=5;
}
console.log(x); //5
}
Example();
Code:
console.log(x); //error
-- طب لو حطينا let بدل الـ var ؟
الـ Let
1- هنا مينفعش اعمل redeclare للـ variable. JavaScript:
let x=1;
let x=2;
console.log(x); //error
2- Access before declare (ُError)
Code:
console.log(a); //a is not defined
let a=10;
3- -let is a Block Scope
يعني مينفعش استخدم ال variable خارج ال scope الي متعرف فيه, يعني متاح جوا ال scope فقط.
JavaScript:
let x=10;
if(x==10){
let x=20;
console.log(x); //20
}
console.log(x); //10
-let is a function scoped
نفس الكلام بردوا مينفعش استخدم ال variable خارج ال scope الخاص بال function.
JavaScript:
function Example(){
if (true){
let x=5;
}
console.log(x); //error x is not defined
let y=10;
}
Example();
console.log; //error y is not defined
الـ Const
هي عباره عن طريقه لتعريف الثوابت وليس المتغيرات ,يعني لا يمكن تغيير قيمته. JavaScript:
const x=10;
x=20;
console.log(x); //Error
وهنا ال const زي ال let بالظبط كل الي ينطبق علي let ينطبق علي const.
1- مينفعش اعمل redeclare لل variable زي ال let.
2- Access before declare (ُError)
نفس الكلام بردوا الي في let , لو عملت access علي ال variable قبل ال declaration بتاعه هيطلعلك رسالة error.
3- Const is a block scoped and function scoped
زي ال let بالظبط مينفعش access علي variable خارج ال scope بتاع ال function او ال block scoped الي متعرف فيه.
وبكدا دا توضيح بسيط بأمثله علي الفرق بين ال Var ,Let ,Const في ال javaScript.