أنواع البيانات في لغة JavaScript


يا هلا ومرحباً! اليوم بنتكلم عن شيء أساسي في جافاسكريبت: أنواع البيانات. الموضوع بسيط ومهم عشان تفهم كيف تشتغل المتغيرات.

1. String (النص)

هذا اللي نستخدمه عشان نخزن أي كلام أو حروف. لازم تحطه بين علامات تنصيص مفردة أو مزدوجة، أو Backticks عشان الـ Template Literals.

let name = "أحمد";
let greeting = 'يا هلا';
let message = <code dir="ltr" style="background:#f3f4f6; color:#0056b3; padding:2px 6px; border-radius:4px; font-family:monospace; direction:ltr !important; display:inline-block;">مرحباً بك يا ${name}</code>;
console.log(message); // Output: مرحباً بك يا أحمد

2. Number (الرقم)

للأرقام يا طويل العمر، سواء كانت صحيحة أو عشرية. جافاسكريبت تتعامل معها كلها كـ Number.

let age = 30;
let price = 99.99;
let result = age + price;
console.log(result); // Output: 129.99
ملاحظة: فيه نوع جديد اسمه BigInt للمتغيرات الرقمية الكبيرة جداً اللي تتجاوز قدرة Number العادي (اللي هو 2^53 - 1). تكتبه بإضافة n في نهاية الرقم.
let bigNumber = 1234567890123456789012345678901234567890n;
    console.log(typeof bigNumber); // Output: bigint

3. Boolean (المنطقي)

هذا النوع قيمته يا true (صح) أو false (خطأ). مفيد جداً في الشروط والتحكم بسير البرنامج.

let isLoggedIn = true;
let hasPermission = false;

if (isLoggedIn) {
    console.log("المستخدم مسجل دخول.");
}

4. Undefined (غير معرّف)

هذا النوع يعني إن المتغير تم التصريح عنه بس ما أعطيته قيمة. جافاسكريبت تحط له undefined افتراضياً.

let car;
console.log(car); // Output: undefined

5. Null (فارغ)

الـ null يعني إن المتغير هذا قيمته "لا شيء" أو "فارغ". أنت اللي تحطها بنفسك عشان تقول إن المتغير ما فيه قيمة بشكل متعمد.

let user = null;
console.log(user); // Output: null
فرق مهم: undefined يعني "لم تُعيّن قيمة"، بينما null يعني "لا قيمة له بشكل متعمد".

6. Symbol (الرمز)

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

const id = Symbol('معرف فريد');
const anotherId = Symbol('معرف فريد');

console.log(id === anotherId); // Output: false (كل واحد فريد)

7. Object (الكائن)

هذا هو النوع المركب الوحيد في جافاسكريبت. كل شيء مو من الأنواع البدائية اللي فوق يعتبر Object. الكائنات ممكن تكون: كائنات عادية {}, مصفوفات [], دوال function() {}, وحتى التاريخ Date.

let person = {
    firstName: "سعود",
    lastName: "العلي",
    age: 25
};

let colors = ["أحمر", "أخضر", "أزرق"];

function greet(name) {
    return <code dir="ltr" style="background:#f3f4f6; color:#0056b3; padding:2px 6px; border-radius:4px; font-family:monospace; direction:ltr !important; display:inline-block;">يا هلا بـ ${name}!</code>;
}

console.log(person.firstName); // Output: سعود
console.log(colors[0]); // Output: أحمر
console.log(greet("فهد")); // Output: يا هلا بـ فهد!
تنبيه: لما تستخدم typeof null، بيطلع لك object. هذا يعتبر "Bug" قديم في جافاسكريبت وما تم إصلاحه عشان ما يخرب تطبيقات كثيرة موجودة.

كيف تعرف نوع البيانات؟

استخدم العامل typeof عشان تعرف نوع أي متغير.

console.log(typeof "مرحباً");     // string
console.log(typeof 123);        // number
console.log(typeof true);       // boolean
console.log(typeof undefined);  // undefined
console.log(typeof null);       // object (تذكر الملاحظة اللي فوق!)
console.log(typeof {});         // object
console.log(typeof []);         // object
console.log(typeof function(){}); // function (لكنها نوع خاص من object)
console.log(typeof Symbol('id')); // symbol
console.log(typeof 10n);        // bigint

وبكذا نكون غطينا أنواع البيانات الأساسية في جافاسكريبت. فهمك لها بيساعدك تكتب كود أنظف وأكثر فعالية. بالتوفيق!