القيم البدائية مقابل الكائنات والأنواع الأساسية
القيم البدائية مقابل الكائنات؛ القيم البدائية السبع؛ فحوصات typeof السريعة والمشكلات الشائعة للمبتدئين.
القيم البدائية مقابل الكائنات والأنواع الأساسية درس مجاني في JavaScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في JavaScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة JavaScript Academy 3 دروس في المجموع.
مقدمة
الهدف: ميّز بين القيم البدائية والكائنات، وتعرّف إلى الأنواع البدائية السبعة من خلال عمليات تحقّق سريعة.
- الأنواع البدائية السبعة
- الكائنات في مقابل كائنات التغليف
- جولة على typeof

الأنواع البدائية السبعة: جولة على typeof
تتضمن JavaScript 7 قيم بدائية: number وbigint وstring وboolean وnull وundefined وsymbol.
// Seven primitives and typeof
const n = 42;
// number
const bi = 42n;
// bigint
const s = "hello";
// string
const b = true;
// boolean
const u = undefined;
// undefined
const nl = null;
// null (primitive)
const sy = Symbol("id");
// symbol (unique each time)
console.log(typeof n, typeof bi, typeof s, typeof b);
console.log(typeof u, typeof nl, typeof sy);
// Note: typeof null is "object" (historical quirk)

القيم البدائية في مقابل الكائنات
القيم البدائية هي قيم مفردة غير قابلة للتغيير. أما الكائنات فتحتوي على خصائص، وتُقارَن بالمرجع (المصفوفات والدوال والتواريخ كائنات).
- تُقارَن القيم البدائية حسب القيمة
- يمكن أن تنمو الكائنات وتتغير

مشكلة كائنات التغليف
فضّل القيم الحرفية (مثل "hello") على كائنات التغليف (new String وnew Number وnew Boolean).
// Avoid wrapper constructors for primitives
const s1 = "hi";
// primitive string
const s2 = new String("hi");
// String object (wrapper)
console.log(typeof s1);
// "string"
console.log(typeof s2);
// "object"
console.log(s1 === "hi");
// true (value compare)
console.log(s2 === "hi");
// false (object vs primitive)

أساسيات BigInt وSymbol
يتعامل BigInt مع الأعداد الصحيحة الضخمة؛ وينشئ Symbol مفاتيح فريدة للكائنات.
// BigInt: integers beyond Number.MAX_SAFE_INTEGER
const big = 9007199254740993n;
// 2^53 + 1
console.log(big + 7n);
// Symbol: unique identifiers
const a = Symbol("token");
const b = Symbol("token");
console.log(a === b);
// false — symbols are always unique

null في مقابل undefined
undefined: مُعلَن عنه ولكن لم تُسنَد إليه قيمة. null: «لا قيمة» مُحددة صراحةً. نصيحة: تُعيد typeof null القيمة "object" (وهو سلوك قديم غير اعتيادي)، لكن null يظل قيمة بدائية.

اختبار typeof null
تحقّق سريع: ما قيمة typeof null؟

مراجعة
مراجعة: تعرّفت إلى القيم البدائية السبعة، وقارنتها بالكائنات، وتجنبت مشكلات كائنات التغليف، وتعلمت السلوك غير الاعتيادي لـ typeof null.

الأسئلة الشائعة
هل درس «القيم البدائية مقابل الكائنات والأنواع الأساسية» مجاني؟
نعم — نص درس «القيم البدائية مقابل الكائنات والأنواع الأساسية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة JavaScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة JavaScript Academy 3 دروس في المجموع.
ماذا ستتعلم في «القيم البدائية مقابل الكائنات والأنواع الأساسية»؟
القيم البدائية مقابل الكائنات؛ القيم البدائية السبع؛ فحوصات typeof السريعة والمشكلات الشائعة للمبتدئين. تتمرن على JavaScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ JavaScript Academy؟
لا تُشترط خبرة سابقة. JavaScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 3.
كم من الوقت يستغرق درس «القيم البدائية مقابل الكائنات والأنواع الأساسية»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس JavaScript Academy هذا؟
نعم. كل درس في JavaScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- القيم البدائية مقابل الكائنات والأنواع الأساسية
- typeof والقيم Truthy/Falsy و== مقابل ===
- تحويل الأنواع: أنماط آمنة لتجنّب المفاجآت