١٥ ديسمبر ٢٠٢١

المتغيرات

:معظم الوقت, تطبيق جافا سكريبت يحتاج للعمل مع معلومات. يوجد هنا مثالان

  1. متجر علي الانترنت – المعلومات قد تتضمن السلع التي يتم بيعها و عربة التسوق
  2. تطبيق دردشه – المعلومات قد تتضمن المستخدمين والرسائل والمزيد

المتغيرات تُستخدم لتخزين المعلومات.

المتغير

المتغير “يُسمي مخزن” للبيانات. نحن نستطيع استخدام المتغيرات لتخزين السلع والزائرين والبيانات الاخري

لأنشاء متغير في جافا سكريبت, نستخدم الكلمه let

الجمله بالاسفل تُنشئ (بعباره اخري: تعلن) متغير يأخذ اسم “message”

let message;

الان, نستطيع وضع بعض البيانات في هذا المتغير بأستخدام الرمز =:

let message;

message = 'Hello'; // تخزين النص

النص تم حفظه الان في منطقة الذاكره المرتبطه بالمتغير. نستطيع الان الوصول اليه وأستخدامه بأسم المتغير:

let message;
message = 'Hello!';

alert(message); // يعرض محتوي المتغير

ولكي نختصر عدد السطور, نستطيع دمج تعريف المتغير وتخزين القيمه به في سطر واحد:

let message = 'Hello!'; // تعريف المتغير و تخزين القيمه به

alert(message); // Hello!

نستطيع ايضا الاعلان عن اكثر من متغير في سطر واحد:

let user = 'John', age = 25, message = 'Hello';

قد يبدو اقل في عدد السطور, ولكن لا نوصي بهذه الطريقه. من أجل قراءة أفضل, من فضلك أستخدم سطر واحد لكل متغير.

أستخدام المتغير لكل سطر يكون أطول قليلا, ولكن أسهل للقراءة:

let user = 'John';
let age = 25;
let message = 'Hello';

بعض الناس ايضا يُعرفون المتغيرات بهذه الطريقه:

let user = 'John',
  age = 25,
  message = 'Hello';

…او حتي يكتب الفاصله في اول السطر

let user = 'John'
  , age = 25
  , message = 'Hello';

تقنيا, كل هذه الطرق تؤدي لنفس الشئ. لذلك, انها مسألة ذوق وجمال شخصي.

var بدلا من let

في الاصدارات الاقدم, قد تجد ايضا كلمة اخري: var بدلا من let:

var message = 'Hello';

الكلمة var تكون غالبا نفس الكلمه let. وهي ايضا تعلن عن متغير, ولكن في مظهر مختلف, طريقة “مدرسه قديمه”.

هناك اختلافات دقيقه بين let و var , ولكن لا تُهمنا بعد. نحن سوف نغطي هذه الاختلافات بتفصيل في الفصل إفادة «var» القديمة.

التجانس الحقيقي

نحن نستطيع بسهوله أستيعاب مفهوم المتغير لو تخيلنا انه عباره عن صندوق لتخزين البيانات, ملصوق عليه اسم مخصص له فقط ويحتوي بداخله علي قيمه اهلا بداخله.

نستطيع أن نضع أي قيمة بداخل الصندوق.

ونستطيع أيضا تغيير قيمته أكثر من مره كما نريد.

let message;

message = 'Hello!';

message = 'World!'; // القيمة أتغيرت

alert(message);

عندما تتغير القيمة, البيانات القديمه تُحذف من المتغير:

ونستطيع أيضا تعريف متغيرين و ننسخ القيمه من أحداهما ونضعها في الأخر.

let hello = 'Hello world!';

let message;

// نسخ القيمة "hello world" من المتغير "hello" الي المتغير "message"
message = hello;

// الان المتغييرين يوجد بداخلهم نفس البيانات
alert(hello); // Hello world!
alert(message); // Hello world!
Declaring twice triggers an error

A variable should be declared only once.

A repeated declaration of the same variable is an error:

let message = "This";

// repeated 'let' leads to an error
let message = "That"; // SyntaxError: 'message' has already been declared

So, we should declare a variable once and then refer to it without let.

Functional languages

من المثير للاهتمام ملاحظة وجود وظيفي لغات برمجه, مثل Scala او Erlang تمنع تغيير قيم المتغير.

في هذه اللغات, القيمه الاولي تُخزن في الصندوق, وتكون للابد. و اذا أردنا تخزين قيمه غيرها, اللغه تُنشئ لنا صندوق جديد (تعريف متغير جديد). ولا نستطيع أعاده استخدام المتغير القديم.

علي الرغم من أنه قد يبدوا غريبا للوهلة الاولي, هذه اللغات قادرة علي التطور الجاد. أكثر من ذلك, هناك مجالات مثل الحسابات المتوازية حيث يمنح هذا القيد فوائد معينة. يُوصي بدراسة مثل هذه اللغة لتوسيع العقل.

تسمية المتغير

هناك طريقتان فقط لتسمية المتغير في جافا سكريبت

  1. يجب أن يحتوي الاسم على أحرف أو أرقام أو الرموز $ و_ فقط.
  2. الحرف الاول من الاسم يجب ألا يكون رقم.

أمثله علي الاسماء الصحيحة :

let userName;
let test123;

عندما يحتوي الاسم علي أكثر من كلمة,