0Pricing
Frontend Academy · درس

أنواع البيانات: string وnumber وboolean وnull وundefined

استكشف الأنواع البدائية في JavaScript، واستخدم typeof لفحصها، وتعلّم الفرق بين null وundefined.

أنواع البيانات: string وnumber وboolean وnull وundefined درس مجاني في Frontend Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Frontend Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Frontend Academy 4 دروس في المجموع.

نظام الأنواع في JavaScript

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

string

تمثل السلاسل النصية النصوص. استخدموا علامات الاقتباس المفردة أو المزدوجة أو backtick (السلسلة القالبية). وهي غير قابلة للتغيير، إذ تُرجع أساليب السلاسل النصية سلاسل جديدة. وللسلاسل النصية خاصية .length والعديد من الأساليب المضمنة.

const greeting = 'Hello';
const lang = "JavaScript";
const sentence = `I love ${lang}`;  // template literal

console.log(greeting.length);   // 5
console.log('hello'.toUpperCase()); // 'HELLO'
console.log(' trim me '.trim()); // 'trim me'

number

لدى JavaScript نوع رقمي واحد. فجميع الأرقام، سواء كانت أعدادًا صحيحة أو عشرية، هي أعداد فاصلة عائمة من 64 بت وفق معيار IEEE 754. وهذا يعني أن 0.1 + 0.2 !== 0.3. وتشمل القيم الخاصة: Infinity و-Infinity وNaN (ليس رقمًا).

const age = 30;
const price = 19.99;
console.log(0.1 + 0.2);          // 0.30000000000000004
console.log(typeof NaN);          // 'number'
console.log(isNaN('hello'));      // true
console.log(Number.isNaN('hello')); // false (safer check)

boolean

تكون القيم المنطقية true أو false. وتُستخدم في الشروط والمقارنات. لكل قيمة في JavaScript قابلية منطقية ضمنية: القيم الكاذبة منطقيًا هي false و0 و'' وnull وundefined وNaN. وكل ما عدا ذلك صحيح منطقيًا.

const isActive = true;
const isAdmin = false;

// Falsy values:
if (0) { /* never runs */ }
if ('') { /* never runs */ }
if (null) { /* never runs */ }

null

إن null قيمة فارغة مُسنَدة صراحةً. وهي تعني «لا توجد قيمة عن قصد». استخدموا null عندما تريدون إفراغ متغير أو الإشارة إلى غياب قيمة. وتُعد typeof null === 'object' خطأً شهيرًا في JavaScript أُبقي عليه للتوافق مع الإصدارات القديمة.

let selectedUser = null;  // no user selected yet
selectedUser = { name: 'Alice' };
selectedUser = null;       // cleared

undefined

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

let x;                       // undefined
function greet(name) {
  console.log(name);           // undefined if called as greet()
}
const obj = {};
console.log(obj.foo);         // undefined

null في مقابل undefined

null = غياب مقصود. undefined = لم تُسنَد القيمة بعد. وكقاعدة عامة: اتركوا للمحرك ضبط undefined، واستخدموا null صراحةً في شيفرتكم عندما تقصدون «فارغ».

المعامل typeof

استخدموا typeof لفحص نوع قيمة أثناء التشغيل. فهو يُرجع سلسلة نصية: 'string' و'number' و'boolean' و'undefined' و'object' و'function' و'bigint' و'symbol'. تذكروا أن typeof null === 'object' خطأ معروف.

typeof 'hello'     // 'string'
typeof 42          // 'number'
typeof true        // 'boolean'
typeof undefined   // 'undefined'
typeof null        // 'object' ← historical bug
typeof {}          // 'object'
typeof []          // 'object'
typeof function(){} // 'function'

Symbol وBigInt

Symbol: معرّف فريد وغير قابل للتغيير، ويُستخدم لمفاتيح خصائص الكائنات التي لن تتعارض. BigInt: أعداد صحيحة أكبر من Number.MAX_SAFE_INTEGER (2^53-1). يُنشأ باستخدام 42n أو BigInt(42). ولا حاجة إليه في معظم أعمال الواجهة الأمامية.

مزالق تحويل الأنواع التلقائي

تحوّل JavaScript الأنواع بصمت أثناء المقارنات والعمليات. استخدموا === (المساواة الصارمة) بدلًا من == (المساواة غير الصارمة) لتجنب المفاجآت الناتجة عن تحويل الأنواع.

0 == false        // true (coercion)
0 === false       // false (strict, no coercion)
'' == false       // true
'5' == 5          // true
'5' === 5         // false ✓ use this

تحويل الأنواع

حوّلوا الأنواع صراحةً باستخدام Number() أو String() أو Boolean() أو parseInt() / parseFloat(). ويكون التحويل الصريح دائمًا أوضح من الاعتماد على التحويل التلقائي.

Number('42')      // 42
Number('')        // 0
Number('abc')     // NaN
String(42)        // '42'
Boolean(0)        // false
Boolean('hello')  // true
parseInt('10px')  // 10

تحقق سريع

ماذا تُرجع typeof null في JavaScript؟

مراجعة: أنواع البيانات في JavaScript

الأنواع البدائية السبعة هي: string وnumber وboolean وnull وundefined وsymbol وbigint. استخدموا typeof لفحص الأنواع. استخدموا === في المقارنات لتجنب تحويل الأنواع. ميّزوا بين null (فراغ مقصود) وundefined (لم تُضبط القيمة بعد). أما جميع القيم الأخرى فهي كائنات.

الأسئلة الشائعة

هل درس «أنواع البيانات: string وnumber وboolean وnull وundefined» مجاني؟

نعم — نص درس «أنواع البيانات: string وnumber وboolean وnull وundefined» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Frontend Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Frontend Academy 4 دروس في المجموع.

ماذا ستتعلم في «أنواع البيانات: string وnumber وboolean وnull وundefined»؟

استكشف الأنواع البدائية في JavaScript، واستخدم typeof لفحصها، وتعلّم الفرق بين null وundefined. تتمرن على Frontend Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Frontend Academy؟

لا تُشترط خبرة سابقة. Frontend Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «أنواع البيانات: string وnumber وboolean وnull وundefined»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Frontend Academy هذا؟

نعم. كل درس في Frontend Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. المتغيرات: let وconst وvar والنطاق
  2. أنواع البيانات: string وnumber وboolean وnull وundefined
  3. الدوال: التصريحات والتعابير والدوال السهمية
  4. تدفق التحكم: if وelse وswitch وfor وwhile
← العودة إلى Frontend Academy