نكتُب شفرات برمجيةً أساسا لحلّ مشاكل. مالذي يحدُث عندما تنقر على زرّ؟ هذه أيضًا مشكلة وينبغي علينا - نحن المطورين - حلّها.
نبدأ هذا الدّرس بحلّ مشكلة صغيرة.
عدّ التفاحات
إن كانت لديك 4 تفاحات واشتريت 27 تفاحة أخرى فكم سيكون لديك من تفاحة؟ اكتُب الإجابة في محرّر النصوص.
ما هي إجابتك؟
// هل هي هذه؟ 31 // Or أم هذه؟ 4 + 27
الإجابتان صحيحتان، إلا أن الأخيرة أحسن؛ إذ أنك تترك لجافاسكريبت عبْء الحساب وتخبره كيف يصل إلى النتيجة.
ولكن لا يزال عندنا مشكلة في الشفرة السابقة. إنْ نظرت إلى 4 + 27
خارج سياق مشكل التفاحات، فهل ستعرف أننا نعدّ التفاحات التي تحملها الآن؟ الأرجح أن الإجابة هي لا.
الأفضل هو استخدام الطريقة الرياضية لإحلال متغيّرات مكان الأعداد 4 و27؛ إن فعلنا ذلك فستكون لدينا القدرة على كتابة شفرة برمجية ذات معنى:
initialApples + applesBought
-
initialApples
: عدد التفاحات الابتدائي. -
applesBought
: عدد التفاحات المشتراة.
تُسمّى عمليّة إحلال متغيّر باسم initialApples
مكان العدد 4 بتعريف المتغيّر Declaring a variable.
تعريف المتغيّرات
تُعرَّف المتغيّرات بالصيغة التالية:
const variableName = 'value'
توجد أربعة أجزاء في الجملة السابقة يجب الانتباه إليها:
-
اسم المتغيّر
variableName
- القيمة Value
-
علامة الإسناد Assignment
=
-
الكلمة المفتاحية
const
اسم المتغيّر
تُشير variableName
إلى اسم المتغيّر الذي أنت بصدد تعريفه. يمكنك إعطاء المتغيّر أي اسم تريده بشرط:
- أن يكون كلمة واحدة
-
أن يتكوّن فقط من حروف لاتينية (a-z, A-Z)، أرقام (0-9) أو علامة تسطير سفلي
_
- ألّا يبدأ برقم
- ألّا يكون كلمة محجوزة Reserved keywords في جافاسكريبت
إن أردت استخدام أكثر من كلمة في اسم متغيّر فستحتاج لإدماج الكلمات معا وكتابة الحرف الأول من كل الكلمات الموجودة بعد الكلمة الأولى بحرف كبير Capital letter، تُسمّى هذه الطريقة بـ Camel case. المتغيّر applesToBuy
مثال على كتابة متغيّر باسم مكوّن من كلمات عدّة.
القيمة
القيمة هي ما تريد أن يكونه المتغيّر. يمكن للقيمة أن تكون بيانات أوليّة Primitives (مثل سلاسل المحارف Strings والأعداد) أو كائنات (مصفوفات ودوالّ).
علامة الإسناد =
في جافاسكريبت
لا تعمل علامة الإسناد =
بنفس طريقة عمل التساوي =
في الرياضيات. لذا يتوجّب عدم الخلط بينهما.
عندما تستخدم العلامة =
في جافاسكريبت فأنت تُسنِد قيمة جزء العبارة الموجود يمين العلامة =
تُسنده إلى الجزء الموجود يسار العلامة. في المثال أدناه نُسنِد القيمة 4 إلى المتغيّر initialApples
.
const initialApples = 4
أو بعبارة أخرى نعطي المتغيّر initialApples
القيمة 4.
إن طلبت طباعة المتغيّر initialApples
فستجد أن النتيجة تساوي 4.
التقويم قبل الإسناد
لا يُخزّن المتغيّر سوى قيمة وحيدة؛ فإذا كانت لديك معادلة على يمين العلامة =
فإن مفسّر جافاسكريبت سيُنفّذ المعادلة الموجودة على الطرف الأيمن ثم بعد ذلك يُسنِد القيمة المُتحصَّل عليها إلى المتغيّر.
const initialApples = 4
const applesToBuy = 27
const totalApples = initialApples + applesToBuy
سيبدأ جافاسكريبت عند تعريف المتغيّر totalApples
في المثال أعلاه بتقويم العبارة initialApples + applesToBuy
(التي تعطي النتيجة 31) ثم بعد ذلك يُسنِد القيمة 31 إلى المتغيّر totalApples
.
الكلمة المفتاحية const
توجد ثلاث كلمات مفتاحية لتعريف المتغيّرات، const
إحداها. الكلمتان الأخريان هما let
وvar
. تُستخدَم كل من الكلمات الثلاث لتعريف متغيّرات؛ إلا أنه يوجد اختلاف بين عملها.
الفرق بين const
وlet
وvar
أُتيح استخدام كلّ من const
وlet
في الإصدار السادس من جافاسكريبت ES6، ولهما خصوصيّات مقارنة مع var
المتاحة منذ إصدارات سابقة، والتي أصبح استخدامها غير منصوح به.
يؤدّي تعريف متغيّر بالكلمة المفتاحية const
إلى انعدام إمكانيّة إسناد قيمة جديدة للمتغيّر بعد تعريفه. يعني هذا أن الشفرة التالية ستُنتِج خطأ عند تنفيذها:
const applesToBuy = 22
// إعادة إسناد قيمة لمتغيّر عُرِّف بـ const يؤدي إلى خطأ أثناء التنفيذ
applesToBuy = 27
أما إن عرّفت متغيّرا بالكلمة المفتاحية let
فسيمكنك إسناد قيمة جديدة له دون خطأ:
let applesToBuy = 22
applesToBuy = 27
console.log(applesToBuy)
أيهما يجب أن أستخدم const
أم let
؟
في البداية سيكون استخدامُ let
بدلا من const
أسهل وأقل إثارة للأخطاء؛ إلا أنك مع الوقت وبعد كتابة برامج عدّة ستلاحظ أنه من الأحسن لك التقليل من إمكانية إسناد قيم جديدة للمتغيّرات باستخدام const
.
ليس هذا الدرسُ التقديمي مناسبا للدخول في تفاصيل أسباب استخدام const
لتعريف المتغيّرات. لكن بما أنك ستبدأ في استخدام const
أكثر من let
عند اكتساب الخبرة بكتابة برامج عدّة بجافاسكريبت فمن الأنسب التعوّد من الآن على هذا الأمر.
بالنسبة لـvar
فليست لك حاجة في استخدامها، const
و let
أفضل بكثير.
الخلاصة
تُستخدَم المتغيّرات في جافاسكريبت للاحتفاظ بقيم. يمكن للمتغيّرات تخزين أي نوع من القيم، سواء كانت بيانات أوليّة أو كائنات.
تختلف العلامة =
في جافاسكريبت عن علامة التساوي =
في الرياضيّات، وتدلّ على الإسناد.
ابتعد عن الكلمات المحجوزة لتسمية المتغيّرات واكتب أسماء المتغيّرات المكوّنة من عدّة كلمات وفق أسلوب Camel case.
توجد ثلاث كلمات مفتاحية لتعريف المتغيّرات في جافاسكريبت وهي const
وlet
وvar
. استخدم let
عندما تريد أن تتاح لك إمكانية التعديل على قيمة المتغيّر. لم تعد توجد حاجة لاستخدام الكلمة المفتاحية var
في جافاسكريبت.
ترجمة - بتصرّف - للمقال What are variables and why use them in JavaScript لصاحبه Zell Liew
حقوق الصورة البارزة محفوظة لـ Freepik
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.