Kodax

المتغيرات وأنواع البيانات — JavaScript الأساسيات

المتغيرات وأنواع البيانات

المتغيرات هي صناديق لتخزين البيانات في الذاكرة.

طرق تعريف المتغيرات

1. let (الطريقة الحديثة)

let age = 25;        // يمكن تغيير قيمته
age = 26;            // ✅ مسموح
let age = 30;        // ❌ خطأ - لا يمكن إعادة التعريف

2. const (الثوابت)

const PI = 3.14159;  // قيمة ثابتة
PI = 3.14;           // ❌ خطأ - لا يمكن التغيير

const user = { name: "أحمد" };
user.name = "محمد";  // ✅ مسموح - تغيير المحتوى
user = {};           // ❌ خطأ - لا يمكن تغيير المرجع

3. var (الطريقة القديمة)

var x = 10;          // تجنب استخدامها
var x = 20;          // ⚠️ مسموح لكن خطير

أنواع البيانات الأساسية

1. الأرقام (Number)

let integer = 42;           // عدد صحيح
let decimal = 3.14;         // عدد عشري
let negative = -100;        // سالب
let scientific = 2.5e6;     // 2.5 × 10⁶ = 2,500,000
let infinity = Infinity;    // اللانهاية
let notNumber = NaN;        // ليس رقم

// العمليات
console.log(10 + 5);    // 15 - جمع
console.log(10 - 5);    // 5 - طرح
console.log(10 * 5);    // 50 - ضرب
console.log(10 / 5);    // 2 - قسمة
console.log(10 % 3);    // 1 - باقي القسمة
console.log(10 ** 2);   // 100 - الأس

2. النصوص (String)

let name = "سارة";
let single = 'مرحباً';
let double = "أهلاً";
let backtick = `مرحباً يا ${name}`;  // Template Literal

// خصائص النص
let text = "JavaScript";
console.log(text.length);        // 10
console.log(text[0]);            // J
console.log(text.toUpperCase()); // JAVASCRIPT
console.log(text.toLowerCase()); // javascript
console.log(text.includes("Script")); // true
console.log(text.slice(0, 4));   // Java
console.log(text.split(""));     // ["J","a","v","a","S","c","r","i","p","t"]

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

let isActive = true;
let isDeleted = false;

// القيم التي تعتبر false:
// false, 0, "", null, undefined, NaN

// كل شيء آخر يعتبر true

4. القيم الفارغة

let nothing = null;       // فارغ عمداً
let notDefined;           // undefined - لم يُعرَّف
console.log(notDefined);  // undefined

5. الرموز (Symbol) - ES6

const id = Symbol("id");
const id2 = Symbol("id");
console.log(id === id2);  // false - كل symbol فريد

فحص نوع البيانات

console.log(typeof 42);           // "number"
console.log(typeof "مرحباً");     // "string"
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"

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

// إلى String
String(123);      // "123"
(123).toString(); // "123"
123 + "";         // "123"

// إلى Number
Number("123");    // 123
parseInt("123");  // 123
parseFloat("3.14"); // 3.14
+"123";           // 123

// إلى Boolean
Boolean(1);       // true
Boolean(0);       // false
!!1;              // true
// تجربة المتغيرات
let name = "أحمد";
const age = 25;

console.log(`الاسم: ${name}`);
console.log(`العمر: ${age}`);

// تجربة أنواع البيانات
let number = 42;
let text = "مرحباً";
let isStudent = true;

console.log(typeof number);  // number
console.log(typeof text);    // string
console.log(typeof isStudent); // boolean
اختبر فهمك