المتغيرات (متوسط)

مقدمة

هذا الدرس يحتوي على بعض المعلومات المتقدمة عن المتغيرات وأساليب تسميتها، وهو تكملة لدرس المتغيرات (المستوى اﻹبتدائي) الذي يحتوي على كل المعلومات اﻷساسية عن المتغيرات.

لغات حساسة اﻷحرف (Case-Sensitive)

معظم لغات البرمجة ومنهم جافاسكريبت حسّاسة اﻷحرف (Case Sensitive)، ويعني ذلك أنها تعتبر الحرف الكبير (Capital) مختلف عن الحرف الصغير (Small)

var name = "Dalilmobarmg";
var Name = "Dalilmobarmg 2";

console.log(name);
console.log(Name);
ناتج التشغيل Dalilmobarmg
Dalilmobarmg 2

في المثال السابق نستنتج أن المفسر يعتبر name متغير و Name متغير آخر يختلف عنه تماماً. والفرق بينهم فقط حرف N كبير

المعلومة السابقة تُطبق أيضاً على أسماء الدوال وأسماء المتغيرات وأي اسماء أو كلمات في اللغة، مثلاً المتغير name يختلف عن المتغير Name كذلك if تختلف عن If، الثانية ستعطي خطأ

الكلمات المُستخدم في اللغة، ككلمة function أو if أو while يجب أن تُكتب كما هي، لو غيرتها مثلاً إلى Function سيُعطيك المفسر خطأ! كذلك null و true و false

وهناك لغات كلغة Python تُكتب فيها القيمة المنطقية هكذا True, False وهي لغة حساسة اﻷحرف، بالتالي إذا كتبتها true فسيُعطي المفسر خطأ.

اﻷسماء متعددة الكلمات

في بعض اﻷحيان نحتاج لكتابة اسم للمتغير يحتوي على أكثر من كلمة! وبالتأكيد نعرف أنه غير مسموح بأن تضع مسافة في إسم المتغير يعني مثلاً first test هو إسم خاطئ للمتغير، يجب أن يتكون المتغير من حروف متلاصقة بدون مسافات، ولو كتبناها هكذا firsttest فيصبح اﻹسم غير قابل للقراءة، تشعر بأنه كلمة واحدة وليست كلمتين؛ لذلك وضع المبرمجين بعض الأساليب والطرق لكتابة اسم من عدة كلمات...

طريقة الجمل (Camel Case)

في هذه الطريقة نقوم بكتابة الحرف اﻷول من الكلمة اﻷولى صغير، والحرف اﻷول من أي كلمة أخرى كبير؛ كالتالي:

  • firstName
  • userName
  • dalilMobarmg
  • camelCase

ويمكن أن يتكون اﻹسم من ثلاث كلمات أو أكثر:

  • myVariableName
  • dateOfBirth
var firstName = "Ebrahim";
سُميَّت هذه الطريقة بطريقة الجمل ﻷن الكلمة تُشبه شكل الجمل، ﻷن في وسط الكلمة ستجد حرف كبير عالي عن باقي الحروف

هذه الطريقة هي الطريقة المُتبعة في كتابة أكواد جافاسكريبت.. كما ستعلم لاحقاً في الدرس.

طريقة باسكال (Pascal Case)

في هذه الطريقة نقوم بكتابة الحرف اﻷول من كل كلمة كبير:

  • FirstName
  • UserName
  • DalilMobarmg
  • PascalCase
var FirstName = "Ebrahim";

طريقة الثعبان (Snake Case)

في هذه الطريقة كل الحروف تكون صغيرة، ونفصل بين كل كلمة واﻷخرى بعلامة _ وتسمى هذه العلامة Underscore:

  • first_name
  • user_name
  • dalil_mobarmg
  • snake_case
var first_name = "Ebrahim";

كما قلنا سابقاً في درس المتغيرات في المستوى اﻹبتدائي أن الرمز _ من الرموز التي يمكن أن تُستخدم في أسماء المتغيرات.

سُميت هذه الطريقة بطريقة الثعبان ﻷننا نفصل بين كل كلمة بـ _ فيصبح شكل الكلمة أشبه بالثعبان

أي طريقة نستخدم؟

يمكنك استخدام أي من الطرق الثلاثة، لكن لكل لغة مجتمع برمجي، وكل مجتمع برمجي وضع بعض اﻷساليب أو دليل لكتابة أكواد هذه اللغة بالطريقة اﻷمثل، وبالتالي عندما تدرس أي لغة ستجد أن مبرمجيها يفضلون الكتابة بطريقة واحدة من الطرق الثلاثة

جافاسكريبت وطريقة الجمل

مثلاً مبرمجين جافاسكريبت يفضلون استخدام طريقة الجمل (camelCase) وستجد معظم الأمثلة والمكتبات الخارجية والدوال المدمجة في اللغة تستعمل هذه الطريقة، لذلك يفضل دائما أثناء كتابتك لكود بلغة جافاسكريبت أن تستخدم طريقة الجمل.

var firstName = 'test';

بايثون وطريقة الثعبان

للغة بايثون أسلوب كتابة (Style Guide) مُتبع في كتابة أكوادها، يفضل مبرمجيها اتباعه ليكون الكود منسق وقابل للقراءة، ومن هذه اﻷساليب استخدام طريقة الثعبان في أسماء المتغيرات والدوال .. الخ. لذلك ستجد في لغة بايثون معظم الدوال الجاهزة والمدمجة باللغة تستخدم هذا اﻷسلوب، وستجد مبرمجي اللغة يفضلون الكتابة بطريقة الثعبان، وهذا مثال بسيط على إنشاء متغير بلغة بايثون:

first_name = 'test'

مجال المتغيرات (variables scope)

نعني بالمجال: المساحة التي يمكنك فيها الوصول للمتغير، وماذا يعني ذلك..؟

المتغير العام (global variable)

يعني أننا لدينا في البرمجة متغيرات يكون مجالها عام (global) يمكن الوصول لهذا المتغير في أي مكان في البرنامج، وتكون هذه المتغيرات هي تلك التي تم إنشاؤها خارج أي دالة (نطلق عليها في مستوى عالي) وهذه المتغيرات يمكن الوصول لها

var num = 10;

function test(){
  console.log(num);
}

test();
ناتج التشغيل 10

في المثال السابق نجد أننا بداخل الدالة تمكننا من استخدام المتغير المعرف خارج الدالة! ﻷن هذا المتغير مجاله عام (global)

المتغير المحلي (local variable)

المتغير المحلي هو متغير تم إنشاؤه أو تعريفه داخل دالة، وﻷن كل دالة تقوم بإنشاء مجال خاص بها، فإن هذا المتغير لا يمكنك استخدامه خارج مجال هذه الدالة.

function test(){
  var num = 10;
}
test();
console.log(num);
ناتج التشغيل num is not defined

في المثال السابق على الرغم من أننا قمنا بتعريف المتغير num داخل الدالة، وقمنا بإستدعاء الدالة، لكن عندما حاولنا طباعة قيمة المتغير خارج الدالة أعطانا المفسّر خطأ، معناه أن المتغير num لم يتم تعريفه.

المتغير المحلي له اﻷولية على المتغير العام داخل الدالة

في المثال التالي سنقوم بإنشاء متغير عام ومتغير محلي بنفس اﻹسم، ونجري تجربة بسيطة...

var num = 6;

function test(){
  var num = 10;
  console.log(num);
}
test();

console.log(num);
ناتج التشغيل 10
6

في المثال السابق قمنا بإنشاء متغير عام اسمه num خارج الدالة، وإنشاء متغير بنفس اﻹسم داخل الدالة ولكن قيمته 10، وقمنا بطباعة قيمة المتغير num مرة داخل الدالة، ومرة خارج الدالة... نجد أن داخل الدالة يعتبر المفسر أن قيمة num تساوي 10 ﻷننا قمنا بتعريفه محلياً داخل الدالة على أن قيمته 10، لكن خارج الدالة يتعامل المفسّر مع المتغير num على أن قيمته 6 ﻷننا قمنا بتعريفه كمتغير عام قيمته 6

المساهمين

وجدت خطأ أو تريد المساهمة في محتوى الدرس؟ عدل الصفحة على Github