أنواع البيانات (Datatypes)

ما هي البيانات؟

البيانات هي أي قيمة يتعامل معها النظام، أو يحفظها، أو يُدخلها المستخدم... فمثلاً اﻷعداد هي بيانات، والنصوص هي بيانات.. وفي البرمجة هناك أنواع نعرفها كاﻷرقام والنصوص، وهناك أنواع برمجية إضافية أهميتها الهيكلة الجيدة للبيانات مما يمكنك من إجراء العمليات عليها بسهولة وسرعة؛ أكمل القراءة لتفهم ما نقصده...

ما هي أنواع البيانات؟

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

لكل نوع من أنواع البيانات تعبيرات سندرسها في الدروس القادمة؛ فكما ذكرنا مثلاً اﻷرقام لها تعبيرات حسابية (رياضية) كالجمع والطرح والضرب والقسمة.

أنواع البيانات اﻷساسية

Integer اﻷعداد الصحيحة:

العدد الصحيح، أي عدد غير عشري مثل: (1, 2, 3, 4,...)

يمكن أن يكون العدد موجباً، ويمكن أن يكون سالباً!

console.log(2);
console.log(2 + 8);

يمكنك إجراء العمليات الحسابية على اﻷرقام كما ستتعلم في درس التعبيرات

Float - اﻷرقام العشرية:

اﻷرقام العشرية في البرمجة تسمى Float وهو نوع بيانات مختلف عن اﻷعداد الصحيحة

console.log(1.4);

String النصّ:

النصّ: وذلك يعني أن أي كتابة سواء كانت كلمة أو جملة تكون نوعها String، ويجب أن يوضع النصّ بين علامتيّ تنصيص "" ولذلك اي كتابة أو أرقام أو أي رموز أو أي شيء بين علامتي التنصيص يعتبره مفسر اللغة نصّاً String..

لا تعرف أين مكان علامات التنصيص في لوحة المفاتيح؟ في الصف اﻷوسط، على اليمين بجانب السيمي كولون ; ستجد زر الحرف "ط" وبجانبه علامات التنصيص، يمكنك كتابة علامة التنصيص الثنائية عن طريق الضغط المستمر على shift ثم الضغط على الزر الذي ذكرناه.

لاحظت ما حدث؟ محرر النصوص يقوم تلقائياً بكتابة علامة التنصيص اﻷخرى ويضع مؤشرة الكتابة بين العلامتين! هذه أحد مميزات محرر النصوص

مثال على طباعة نصّ:

console.log("دليل مبرمج");

ويمكن أن نضع النصّ بين علامة تنصيص منفردة... '' مثال:

console.log('دليل مبرمج');

لكن ليس كل لغات البرمجة تدعم هذا النوع من علامات التنصيص المنفردة كعلامات للنصوص، وأيضاً هناك لغات تختلف فيها العلامة المزدوجة عن المنفردة في بعض اﻷمور... لكن في لغة جافاسكريبت يمكنك استعمال أيٍ منهما "" أو ''

لا تعرف كيف تكتب علامة التنصيص المنفردة؟ ستجدها في نفس مفتاح علامة التنصيص المزدوجة واﻹختلاف أنك تكتبها بدون أن تضغط على Shift كما تفعل مع علامة التنصيص المزدوجة، لكن تأكد من أن اللغة التي تكتب بها هي اﻹنجليزية ﻷن لو كانت العربية سيكتب حرف ط

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

اﻷرقام إذا وضعتها داخل علامات التنصيص سيعتبرها المفسّر نصّاً ولن تستطيع إجراء عمليات حسابية عليها أو التعامل معها كأعداد! فيجب كتابة الرقم بدون علامات تنصيص كالرقم التالي: 5

النزول لسطر جديد في النصوص

إذا أردت النزول لسطر جديد، نستخدم الرمز \n في كل لغات البرمجة للنزول لسطر جديد، نجربه اﻵن:

لا تعرف كيف تكتب هذا الرمز؟ هذا الرمز يستخدم علامة مهمة جداً وهي الشرطة المائلة المعكوسة ﻷنه هناك نوعان من الشرطة المائلة، الشرطة المعكوسة يمكنك كتابتها عن طريق زر ستجده غالباً فوق زر Enter أو يساره حسب نوع لوحة المفاتيح الخاصة بك، عند الضغط عليه واللغة التي تكتب بها اﻹنجليزية سيكتب لك العلامة.

console.log("Line 1 \n Line 2");

لاحظت أن السطر الثاني يبدأ بمسافة صحيح؟ هذا ﻷننا وضعنا مسافة بين الرمز وبين باقي النص.. لذلك يمكنك حذف المسافة كما في المثال:

console.log("Line 1\nLine 2");

ستلاحظ دائما أن الرمز يأخذ لوناً مميزاً في محررات النصوص حتى تستطيع التفرقة بينه وبين النصّ وملاحظته بسهولة.

Boolean - القيمة المنطقية:

وهو نوع من أهم أنواع البيانات وستعلم أهميته وسيكثر استخدامه جداً في الدروس القادمة؛ وهو يمكن أن يكون قيمة من قيمتين فقط:

  • true
  • false

وهذه القيم مهمة ﻷبعد درجة، فعندمايحولك تطبيق على صفحة الدخول إن لم تكن قد دخلت... فهو يعتمد هنا على true و false كنوع بيانات، فمثلا إن كنت سجلت دخول تكن القيمة true وإن لم تكن فالقيمة تُصبح false

جرب اﻵن كتابة هذا النوع من البيانات...

console.log(true)
console.log(false)

ستلاحظ عند كتابة true أو false يظهر لونهم مختلف عن باقي الكتابة عند استخدامك أي محرر نصوص

انتبه: يجب أن تُكتب القيمة المنطقية بدون علامات تنصيص، ﻷن كما ذكرنا لو كتبتها داخل علامات تنصيص "" سيعتبرها المفسر نصّاً String لذلك انتبه جداً... فالقيمة false ﻻ تساوي القيمة "false" أبداً

تختلف كتابة القيمة المنطقية من لغة لأخرى ولكن اﻷشهر (كما هو في جافاسكريبت): true false لكن هناك لغات مثلاً يكون الحرف اﻷول من الكلمتين كبير (كابيتال) كلغة بايثون: True False لذلك عندما تتعلم أساسيات لغة معينة مستقبلاً ستتعلم سريعاً كيف تُكتب فيها القيم المنطقية وكذلك الحال مع الكثير من اﻷمور! فالمفاهيم بنسبة كبيرة واحدة لكن تختلف طريقة الكتابة (Syntax) وبعض اﻷمور البسيطة

مثال واقعي على القيم المنطقية

هل تخيلت مثلاً الوضع الليلي المُدمج في هذه المنصة التي تقرأ عليها الدرس أو أي منصة أخرى كيف يعمل؟ هناك الكثير من التفاصيل واﻷمور المعقدة التي تحدث لكن جوهر كل ما يحدث هو هل الوضع الليلي اﻵن قيمته true أم false ؟ فعندما تضغط على زر الوضع الليلي ملخص ما يقوم الزر به هو تغيير القيمة من true إلى false أو العكس؛ وباقي أجزاء الواجهة (الموقع - التطبيق) عندما تجد قيمة الوضع الليلي تغيرت تتغير فوراً بناءا على القيمة الجديدة!

بالتأكيد لا تتغير ويتغير لونها من تلقاء نفسها بل هناك تفاصيل وعمليات كثيرة تتم لكننا نشرح جوهر ما يتمّ وأنه من اﻷساس يعتمد كلياً على نوع البيانات القيم المنطقية Boolean

تجربة الوضع الليلي
جرّب مثال تطبيقي على الوضع الليلي واستخدام القيم المنطقية!
اضغط على الزر:

ستتعلم أكثر عن هذا النوع من البيانات في المستوى المتوسط

ستفهم استخدام القيم المنطقية وأهميتها في درس if الشرطية

null - لا شيء:

هذا النوع من البيانات أيضاً مهم جداً ، وهو يعني قيمة فارغة ! نعم يعني لا شيء... ولكن هو مهم وله اسلوب خاص في التعامل ومستقبلاً ستعرف بعض خواصُّه؛ لكن اﻵن يجب أن تعرفه وتعرف معناه وكتابته فقط.

جرب طباعة null لنرى الناتج...

ستلاحظ عندما تكتب null في أي محرر نصوص متقدم أن المحرر يُظهرها بلون مختلف!

console.log(null);

جرب كتابة وطباعة أي كلمة أخرى غير null بدون وضعها في علامات تنصيص؛ سيظهر لك خطأ... ﻷن أي نص يجب أن يوضع بين علامات تنصيص كما ذكرنا سابقاً، أما null لم تُعطي خطأ ﻷنها ليست نص ولكنها نوع من أنواع البيانات له خواصّه ويعرفه المفسّر!

عندما تكتب null يجب كتابتها بدون علامات تنصيص " "؛ ﻷن المفسر سيعتبرها نصّ String إن وضعتها بين علامات تنصيص.

مثال حقيقي على استخدام null

اﻵن أعلم أنك تستغرب وفضولك يدفعك للسؤال عن فيم يُستخدم؟ سأوضح لك بمثال حقيقي

مثلاً عندما تفتح صفحة شخص على فيسبوك ولكن هذه الصفحة لا يوجد فيها منشورات، البرمجة الخلفية لفيسبوك عندما لا تجد منشورات تقوم بإرسال القيمة إلى الواجهة الأمامية null بدلاً من إرسال محتوى المنشورات! فذاك النوع من البيانات يعني غير موجود، وكذلك عندما مثلاً تحاول الدخول لموقع لم تسجل فيه فتظهر لك رسالة "البريد الإلكتروني غير موجود"، هنا ما حدث هو أن البرمجة الخلفية بحثت عن حسابك لم تجده فقامت بإرسال رد إلى الواجهة الأمامية من نوع null لتعرف الواجهة أن ما نبحث عنه غير موجود فتُظهر رسالة بريدك غير موجود!

المساهمين

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