x32x01
  • بواسطة x32x01 ||
الفرق بين 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
هنا عمل override وهيطبع اخر قيمه اللي هي 2 بس , وبكدا عمل redeclare للvariable عادي بدون اي مشكله.

2- ِِAccess before declare (undefined)
Code:
console.log(a); //undefined
var a=10;
وبكدا لو عملت access علي variable قبل ال declaration بتاعه هيقولك undefined.

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();
هيطبع 5 , لان استخدمة ال x جوا ال function scope الي متعرفه فيه , انما لو استخدمة ال x خارج function scope هيطلع Error.
Code:
console.log(x); //error

-- طب لو حطينا let بدل الـ var ؟

الـ Let

1- هنا مينفعش اعمل redeclare للـ variable.
JavaScript:
let x=1;
let x=2;
console.log(x); //error
هنا هيطلع Error, هيقولك ان x معموله declare قبل كدا يعني موجود.

2- Access before declare (ُError)
Code:
console.log(a); //a is not defined
let a=10;
هنا لو عملت access لل variable قبل ال declaration بتاعه, هيطلعلك رسالة error,يعني هيقولك ايه الي حصل عكس ال var.

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
هنا طبع في الاولي 20 علشان معرف x=20 جوا ال scope بتاع ال if, وطبع في التانيه 10 لان let is a block scope ,وال x قيمتها خارج ال scope ب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
هنا هيقولك ان x not defined علشان استخدمة ال x خارج ال scope الي متعرفه فيه, وال y نفس الكلام علشان استخدمة ال y خارج ال function scope.

الـ Const

هي عباره عن طريقه لتعريف الثوابت وليس المتغيرات ,يعني لا يمكن تغيير قيمته.
JavaScript:
const x=10;
x=20;
console.log(x); //Error
هنا هيطلع 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.
 

المشاركات المتشابهة

x32x01
الردود
0
المشاهدات
13
x32x01
x32x01
x32x01
الردود
0
المشاهدات
54
x32x01
x32x01
x32x01
الردود
0
المشاهدات
111
x32x01
x32x01
x32x01
الردود
0
المشاهدات
10
x32x01
x32x01
x32x01
الردود
0
المشاهدات
10
x32x01
x32x01
الوسوم : الوسوم
المتغيرات

الدخول أو التسجيل السريع

نسيت كلمة مرورك؟

آخر المشاركات

أحدث المنتجات

إحصائيات المنتدى

المواضيع
1,600
المشاركات
1,787
أعضاء أكتب كود
193
أخر عضو
HAa
عودة
أعلى