JavaScript Let
تم let
تقديم الكلمة الأساسية في
ES6 (2015) .
let
لا يمكن إعادة تعريف المتغيرات المعرفة بـ .
let
يجب التصريح عن المتغيرات المعرفة بـ قبل الاستخدام.
المتغيرات المعرفة let
بنطاق الكتلة.
لا يمكن إعادة التصريح
let
لا يمكن إعادة تعريف المتغيرات المعرفة بـ .
لا يمكنك إعادة تعريف متغير عن طريق الخطأ.
مع let
لا يمكنك القيام بذلك:
مثال
let x = "John Doe";
let x = 0;
// SyntaxError: 'x' has already been declared
var
يمكنك مع ذلك:
مثال
var x = "John Doe";
var x = 0;
نطاق الكتلة
قبل ES6 (2015) ، كان لـ JavaScript النطاق العالمي والنطاق الوظيفي فقط .
قدم ES6 كلمتين أساسيتين مهمتين لجافا سكريبت: let
و const
.
توفر هاتان الكلمتان الأساسيتان Block Scope في JavaScript.
المتغيرات التي تم تعريفها داخل كتلة {} لا يمكن الوصول إليها من خارج الكتلة:
مثال
{
let x = 2;
}
// x can NOT be used here
المتغيرات المعلنة var
بالكلمة الأساسية لا يمكن أن يكون لها نطاق كتلة.
يمكن الوصول إلى المتغيرات المعلنة داخل كتلة {} من خارج الكتلة.
مثال
{
var x = 2;
}
// x CAN be used here
إعادة تعريف المتغيرات
يمكن أن تؤدي إعادة تعريف متغير باستخدام var
الكلمة الأساسية إلى حدوث مشكلات.
ستؤدي إعادة تعريف متغير داخل كتلة أيضًا إلى إعادة تعريف المتغير خارج الكتلة:
مثال
var x = 10;
// Here x is 10
{
var x = 2;
// Here x is 2
}
// Here x is 2
يمكن أن تؤدي إعادة تعريف متغير باستخدام let
الكلمة الأساسية إلى حل هذه المشكلة.
إعادة تعريف متغير داخل كتلة لن يعيد تعريف المتغير خارج الكتلة:
مثال
let x = 10;
// Here x is 10
{
let x = 2;
// Here x is 2
}
// Here x is 10
دعم المتصفح
الكلمة الأساسية let
غير مدعومة بالكامل في Internet Explorer 11 أو إصدار أقدم.
يحدد الجدول التالي إصدارات المستعرض الأولى مع دعم كامل let
للكلمة الرئيسية:
Chrome 49 | Edge 12 | Firefox 44 | Safari 11 | Opera 36 |
Mar, 2016 | Jul, 2015 | Jan, 2015 | Sep, 2017 | Mar, 2016 |
إعادة التصريح
يُسمح بإعادة تعريف متغير JavaScript باستخدام var
في أي مكان في البرنامج:
مثال
var x = 2;
// Now x is 2
var x = 3;
// Now x is 3
مع let
إعادة تعريف متغير في نفس الكتلة غير مسموح به:
مثال
var x = 2; // Allowed
let x = 3; // Not allowed
{
let x = 2; // Allowed
let x = 3 // Not allowed
}
{
let x = 2; // Allowed
var x = 3 // Not allowed
}
إعادة تعريف متغير باستخدام let
IS في كتلة أخرى:
مثال
let x = 2; // Allowed
{
let x = 3; // Allowed
}
{
let x = 4; // Allowed
}
دع الرفع
var
يتم رفع المتغيرات المعرفة إلى الأعلى ويمكن تهيئتها في أي وقت.
المعنى: يمكنك استخدام المتغير قبل التصريح عنه:
مثال
لابأس:
carName = "Volvo";
var carName;
إذا كنت تريد معرفة المزيد حول الرفع ، فقم بدراسة فصل JavaScript Hoisting .
يتم أيضًا رفع المتغيرات المعرفة let
بـ إلى أعلى الكتلة ، لكن لم تتم تهيئتها.
المعنى: استخدام let
متغير قبل التصريح عنه ينتج عنه
ReferenceError
:
مثال
carName = "Saab";
let carName = "Volvo";