JavaScript: أنواع البيانات في جافاسكريبت

آخر تحديث: 2026-10-13

أنواع البيانات تحدد العمليات التي يمكنك تنفيذها — الأرقام تدعم الحسابات، والنصوص تدعم الربط، والقيم المنطقية تدعم الشروط. فهم الأنواع يساعدك على تجنب أكثر فخاخ JS كلاسيكية.

دوال عامة ذات صلة:Array.isArray() Number.isNaN() parseInt() Number() typeof

1. أنواع البيانات في JS

تحتوي جافاسكريبت على 8 أنواع بيانات، مقسمة إلى بدائل وأنواع مرجعية:

بدائل (7 أنواع): String، Number، BigInt، Boolean، Undefined، Null، Symbol

نوع مرجعي (نوع واحد): Object (المصفوفات، الدوال، التواريخ، إلخ كلها أنواع فرعية من Object)

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


typeof هو عامل يتحقق من أنواع البيانات ويعيد نصًا:

القيمة نتيجة typeof
"مرحبا" "string"
42 "number"
9007199254740991n "bigint"
true "boolean"
undefined "undefined"
null "object" (خطأ تاريخي)
{ } "object"
function(){} "function"

ملاحظة: typeof null يعيد "object" — هذا خطأ تاريخي من بداية JS لا يمكن إصلاحه (تغييره سيكسر الكود الموجود). فقط تذكره.


2. فخاخ النص والأرقام

عامل + في JS يخدم غرضين: الجمع العددي وربط النصوص. عندما يكون أحد طرفي + نصًا، يحول JS القيمة الأخرى إلى نص أيضًا:

هذا هو أحد أكثر فخاخ JS كلاسيكية — كل مبتدئ يقع فيه. الحل: استخدم Number() أو parseInt() للتحويل الصريح قبل العمليات الحسابية.


3. null مقابل undefined

كلاهما يعني "لا قيمة"، لكنهما يختلفان في النية:

فكر فيها بهذه الطريقة: undefined هو منزل جديد بدون أثاث بعد؛ null هو عندما نقلت جميع الأثاث عمدًا.

▶ مثال: typeof مع أنواع مختلفة

▶ جرّب الكود

▶ مثال: فخاخ النص والأرقام

▶ جرّب الكود

▶ مثال: null مقابل undefined

▶ جرّب الكود

▶ مثال: جميع أنواع البيانات في لمحة

▶ جرّب الكود

دوال عامة ذات صلة:Array.isArray() Number.isNaN() parseInt() Number() typeof

❓ أسئلة شائعة

س لماذا يُرجع typeof null "object"؟
ج هذا خطأ تاريخي من الإصدار الأول من JS. في ذلك الوقت، استخدمت JS بتات منخفضة لتحديد الأنواع، وnull كانت جميع بتاتها المنخفضة صفراً — مثل مُعرّف الكائن — لذلك تم تصنيفها بشكل خاطئ. حاولوا إصلاحها لاحقًا، لكن تغييرها سيكسر الكثير من الكود الموجود،🦄 أصبح الخطأ دائمًا. إنه مثل مبنى بأساس مائل — يعيش فيه🦄 أشخاص لهدمه.
س كيف أتحقق مما إذا كانت القيمة مصفوفة أم كائنًا عاديًا؟
ج typeof يُرجع "object" لكلتا المصفوفات والكائنات،🦄 لا يمكنه التمييز بينهما. الطريقة الصحيحة هي Array.isArray() — على سبيل المثال، Array.isArray([1,2]) يُرجع true، بينما Array.isArray({}) يُرجع false.
س ما نوع NaN؟
ج NaN (ليس رقمًا) لديه typeof NaN يُرجع "number". الأكثر غرابة أن NaN === NaN يُرجع false — ليس حتى مساويًا لنفسه. استخدم isNaN() أو Number.isNaN() للتحقق من NaN.

📖 ملخص

📝 تمارين

  1. أساسي: أعلن 6 متغيرات لـ 6 أنواع بدائل (String، Number، Boolean، Undefined، Null، Object)، استخدم typeof على كل منها، واعرض النتائج على الصفحة.
  2. متوسط: أنشئ صفحة بها حقل إدخال. عندما يدخل المستخدم أي قيمة، يكتشف JS نوعها باستخدام typeof ويعرض النتيجة. جرّب إدخال أرقام، نصوص، true، null، إلخ، ولاحظ مخرجات typeof.
  3. تحدي: أنشئ صفحة "اختبار فخاخ الأنواع" بها 5 أسئلة اختيار من متعدد تختبر معرفة إكراه الأنواع، مثل ما قيمة "1" + 2، وما إذا كان null == undefined صحيحًا أم خاطئًا، إلخ. اعرض تغذية راجعة صحيحة/خاطئة مع التفسيرات عندما ينقر المستخدم على خيار.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%