مقدمة
أنواع البيانات تُستخدم لتصنيف نوع معين من البيانات في لغات البرمجة. على سبيل المثال، الرقم وسلسلة من الأحرف هما أنواع مختلفة من البيانات التي ستُعامل بشكل مختلف بواسطة جافا سكريبت.
هذا مهم لأن نوع البيانات الخاص الذي تستخدمه سيحدد القيم التي يمكنك تعيينها له وما يمكنك فعله به. وهذا يعني، من أجل قيام عمليات مع المتغيرات في جافا سكريبت، من المهم فهم نوع البيانات لأي متغير معطى.
في هذا البرنامج التعليمي، سنتناول كيفية عمل أنواع البيانات في جافا سكريبت بالإضافة إلى الأنواع الهامة الموجودة بشكل طبيعي في اللغة. هذا ليس تحقيقًا شاملًا لأنواع البيانات، ولكن سيساعدك على أن تصبح على دراية بالخيارات المتاحة لك في جافا سكريبت.
التطويع الديناميكي
جافا سكريبت لديها أنواع بيانات ديناميكية، مما يعني أن التحقق من النوع يتم أثناء التشغيل بدلاً من وقت الترجمة. أنواع بيانات بايثون أيضًا مُطالب بها تطويعياً.
مع لغات البرمجة التي تتميز بالتطويع الديناميكي، يمكن استخدام متغير بنفس الاسم لاحتواء أنواع بيانات مختلفة.
على سبيل المثال، يمكن تعريف المتغير t
، كمتغير باستخدام الكلمة الرئيسية let
(لاحظ أن let
يحافظ على تحديد المتغير المعطى في النطاق المحدد)، ليحتوي على أنواع بيانات مختلفة، أو يمكن تهيئته وتركه غير معرف:
يمكن تعيين كل من المتغيرات t
أعلاه لأي نوع بيانات متاح في JavaScript؛ لا يجب أن يتم تعريفها صراحة بنوع البيانات قبل استخدامها.
الأرقام
JavaScript يحتوي على نوع واحد فقط للأرقام، لا يوجد تصنيف منفصل للأعداد الصحيحة والأعداد العائمة. وبسبب ذلك، يمكن كتابة الأرقام في JavaScript بأو بدون أرقام عشرية:
في كلا الحالتين أعلاه، نوع البيانات هو رقم وهو نفسه بغض النظر عما إذا كانت العدد لديه نقاط عشرية أم لا.
يمكن استخدام العلامة العلمية العائمة في JavaScript لتختصر الأرقام الكبيرة جدًا أو الصغيرة جدًا، كما في الأمثلة التالية:
الأرقام في جافا سكريبت تُعتبر دقيقة حتى 15 رقمًا. وهذا يعني أن الأرقام ستُستدير بعد الرقم 16:
بالإضافة إلى تمثيل الأرقام، فإن نوع الأرقام في جافا سكريبت يحتوي أيضًا على ثلاثة قيم رمزية متاحة:
Infinity
— قيمة رقمية تمثل رقمًا موجبًا يقترب من اللانهاية-Infinity
— قيمة رقمية تمثل رقمًا سالبًا يقترب من اللانهايةNaN
— قيمة رقمية تمثل غير رقم، وتعني ليس رقمًا
Infinity
أو -Infinity
ستُعاد إذا قمت بحساب رقم خارج القيمة الأكبر الممكنة المتاحة في جافا سكريبت. سيحدث ذلك أيضًا للقيم التي هي غير معرفة، مثل عند القسمة على الصفر:
بالمصطلحات الفنية، ستُعرض القيمة Infinity
عندما يتجاوز الرقم القيمة 1.797693134862315E+308
، والتي تُمثل الحد الأعلى في جافا سكريبت.
بالمثل، ستُعرض القيمة -Infinity
عندما يتجاوز الرقم الحد الأدنى للقيمة -1.797693134862316E+308
.
يمكن أيضًا استخدام الرقم Infinity
في الحلقات:
بالنسبة للأرقام التي ليست أرقامًا قانونية، سيتم عرض NaN
. إذا حاولت القيام بعملية رياضية على رقم وقيمة غير رقمية، سيتم إرجاع NaN
. هذه الحالة هي الحالة في المثال التالي:
نظرًا لأن الرقم 20
لا يمكن قسمه على السلسلة "Shark"
لأنه لا يمكن تقييمه كرقم، فإن القيمة المُرجعة للمتغير x
هي NaN
.
ومع ذلك، إذا كان بإمكان تقييم سلسلة كقيمة رقمية، يمكن تنفيذ التعبير الرياضي في JavaScript:
في المثال أعلاه، نظرًا لأن السلسلة "5"
يمكن تقييمها كقيمة رقمية في JavaScript، يتم معاملتها على أنها كذلك وستعمل مع المشغل الرياضي للقسمة، /
.
عند تعيين قيمة NaN
لمتغير يُستخدم في عملية، فسيؤدي ذلك إلى قيمة NaN
، حتى عندما يكون العامل الآخر رقمًا قانونيًا:
هناك نوع واحد فقط من الأرقام في JavaScript. عند العمل مع الأرقام، سيتم تفسير أي رقم تدخله على أنه نوع بيانات الأرقام؛ فليس عليك أن تعلن أي نوع من أنواع البيانات تدخله لأن JavaScript هو متغير النوع تلقائيًا.
السلاسل
A string is a sequence of one or more characters (letters, numbers, symbols). Strings are useful in that they represent textual data.
في جافا سكريبت، توجد السلاسل داخل علامات اقتباس إما فردية '
أو مزدوجة "
، لذا لإنشاء سلسلة، قم بتضمين تسلسل من الأحرف بين الاقتباسات:
يمكنك اختيار استخدام الاقتباسات الفردية أو المزدوجة، ولكن مهما قررت يجب أن تبقى متسقًا داخل البرنامج.
يظهر البرنامج “مرحبًا، العالم!” كيف يمكن استخدام سلسلة في برمجة الكمبيوتر، حيث أن الأحرف التي تتكون من عبارة مرحبًا، العالم!
في alert()
أدناه هي سلسلة.
عند تشغيل الكود والنقر فوق زر انقر هنا
، سنتلقى نافذة منبثقة تحتوي على الناتج التالي:
OutputHello, World!
كما هو الحال مع أنواع البيانات الأخرى، يمكننا تخزين السلاسل في متغيرات:
وعرض السلسلة في alert()
عن طريق استدعاء المتغير:
OutputHello, World!
هناك العديد من العمليات التي يمكننا تنفيذها على السلاسل داخل برامجنا من أجل تلاعب بها لتحقيق النتائج التي نبحث عنها. السلاسل مهمة لتبادل المعلومات مع المستخدم، وللمستخدم لتبادل المعلومات مع البرنامج.
البوليان
يمكن أن يكون نوع البيانات البوليان أحد القيمتين، إما صح أو خطأ. يُستخدم البوليان لتمثيل قيم الحقيقة المرتبطة بفرع المنطق في الرياضيات، والذي يُعلم خوارزميات علوم الكمبيوتر.
العديد من العمليات في الرياضيات تُعطينا إجابات تُقيم إما صح أو خطأ:
- أكبر من
- 500 > 100
صحيح
- 1 > 5
خطأ
- 500 > 100
- أقل من
- 200 < 400
صحيح
- 4 < 2
خطأ
- 200 < 400
- متساوي
- 5 = 5
صحيح
- 500 = 400
خطأ
- 5 = 5
مثل باقي أنواع البيانات، يمكننا تخزين قيمة بوليان في متغير:
نظرًا لأن 5 ليست أكبر من 8، فإن المتغير myBool
لديه قيمة خطأ
.
كلما كتبت المزيد من البرامج في جافا سكريبت، ستصبح أكثر إلمامًا بكيفية عمل البوليان وكيف يمكن للدوال والعمليات المختلفة تقييم إما صحيح أو خطأ وتغيير مسار البرنامج.
المصفوفات
يمكن لـالمصفوفة أن تحتوي على قيم متعددة داخل متغير واحد. وهذا يعني أنه يمكنك تضمين قائمة من القيم داخل مصفوفة والتكرار من خلالها.
يُطلق على كل عنصر أو قيمة داخل مصفوفة اسم العنصر. يمكنك الإشارة إلى عناصر المصفوفة باستخدام رقم فهرس.
تمامًا كما يتم تحديد السلاسل كمحارف بين علامات اقتباس، تتم تحديد المصفوفات عن طريق وجود القيم بين قوسين مربعين [ ]
.
مثلاً، مصفوفة من السلاسل تبدو كالتالي:
إذا قمنا بتسمية المتغير fish
، سنتلقى الناتج التالي:
المصفوفات هي نوع بيانات مرن جدًا لأنها قابلة للتغيير بمعنى أنه يمكن إضافة قيم العناصر، وإزالتها، وتغييرها.
الكائنات
يمكن أن يحتوي نوع بيانات الكائن في جافا سكريبت على العديد من القيم على شكل أزواج اسم:قيمة. توفر هذه الأزواج وسيلة مفيدة لتخزين البيانات والوصول إليها. يتكون نحو الكائن الحرفي من أزواج اسم:قيمة مفصولة بالنقاط والفواصل مع القوسين الزوجية على كلا الجانبين { }
.
يستخدم عادة لحمل البيانات المتعلقة، مثل المعلومات الواردة في معرف، يبدو الكائن الحرفي في جافا سكريبت كالتالي، مع المسافات البيضاء بين الخصائص:
بدلاً من ذلك، وخاصةً للقيم النصية للكائن ذو العدد الكبير من الأسماء والقيم، يمكننا كتابة هذا النوع من البيانات على عدة أسطر، مع مسافة بعد كل علامة التعجب:
المتغير الكائن sammy
في كل من الأمثلة أعلاه لديه 4 خصائص: firstName
، lastName
، color
، و location
. هذه تمرر قيم مفصولة بواسطة نقاط وزيرو:
العمل مع أنواع بيانات متعددة
على الرغم من أن كل برنامج تقوم بإنشائه سيحتوي على أنواع بيانات متعددة، فمن المهم أن نضع في اعتبارنا أنه عمومًا سنقوم بتنفيذ العمليات داخل نفس نوع البيانات. وهذا يعني أنك ستقوم بإجراء عمليات رياضية على الأرقام، أو قطع السلاسل النصية.
عند استخدام عامل يعمل عبر أنواع البيانات، مثل عامل +
الذي يمكنه إضافة الأرقام أو ربط السلاسل، قد تحصل على نتائج غير متوقعة.
على سبيل المثال، عند استخدام عامل +
مع الأرقام والسلاسل معًا، سيتم معالجة الأرقام كسلسلة (وبالتالي سيتم ربطها)، لكن ترتيب أنواع البيانات سيؤثر على الربط.
لذلك، إذا قمت بإنشاء متغير يقوم بالربط التالي، ستفسر جافا سكريبت كل عنصر أدناه كسلسلة:
إذا قمت باستدعاء المتغير o
، ستحصل على القيمة التالية المُرجعة:
OutputOcean53
ومع ذلك، إذا بدأت بالأرقام، ستتم إضافة الرقمين معًا قبل أن يتم تفسيرهما كسلسلة عندما يصل وقت تشغيل البرنامج إلى "Ocean"
، لذا سيكون القيمة المُرجعة هي مجموع الرقمين متصلًا بالسلسلة:
Output8Ocean
بسبب هذه النتائج غير المتوقعة، من المحتمل أن تقوم بتنفيذ العمليات والأساليب ضمن نوع بيانات واحد بدلاً من تقاطعها. ومع ذلك، لا تعيد JavaScript الأخطاء عند مزج أنواع البيانات، كما تفعل بعض لغات البرمجة الأخرى.
الختام
في هذه النقطة، يجب أن تكون قد فهمت بشكل أفضل لبعض أنواع البيانات الرئيسية المتاحة لك لاستخدامها في JavaScript.
سيصبح كل من هذه الأنواع البيانات مهمًا أثناء تطوير مشاريع البرمجة بلغة JavaScript.
Source:
https://www.digitalocean.com/community/tutorials/understanding-data-types-in-javascript