1

data types in javascript

في جافاسكريبت، الأنواع (Data Types) تنقسم إلى نوعين رئيسيين: الأنواع الأساسية (Primitive Types) والأنواع المرجعية (Reference Types).

فهم الأنواع في جافاسكريبت مهم جدًا لتجنب الأخطاء البرمجية وضمان أن يكون الكود متينًا وقابلًا للصيانة.

data types in javascript

الأنواع الأساسية (Primitive Types)

Number

يمثل كل الأرقام بما في ذلك الأعداد الصحيحة والأعداد العشرية.

والعمليات الحسابية مثل الجمع والطرح والضرب والقسمة.

مثال علي ذلك

				
					let integer = 42; // عدد صحيح
let float = 3.14; // عدد عشري
let negative = -7; // عدد سالب
let exponent = 1.2e4; // 12000 (التمثيل الأسي)

				
			

String

يمثل النصوص. يمكن استخدام علامات اقتباس مفردة أو مزدوجة أو backticks للنصوص متعددة الأسطر أو النصوص التي تحتوي على متغيرات مضمنة.

الدوال المفيدة مثل length, toUpperCase(), toLowerCase(), substring(), slice(), replace().

مثال علي ذلك

				
					let singleQuote = 'Hello';
let doubleQuote = "World";
let templateLiteral = `Hello, ${singleQuote}`;
let multiLine = `This is a multi-line string.`;

				
			

Boolean

يمثل قيمتين: true أو false يستخدم في عمليات المقارنة والشرطيات.

مثال علي ذلك

				
					let isTrue = true;
let isFalse = false;
let comparison = 5 > 3; // true

				
			

Undefined

يتم إسنادها إلى متغير لم يتم تعيين قيمة له بعد.

مثال علي ذلك

				
					let undefinedVariable;
console.log(undefinedVariable); // undefined

				
			

Null

يمثل غياب أي قيمة . يجب تعيينه صريح

مثال علي ذلك

				
					let emptyValue = null;

				
			

Symbol

يمثل قيمة فريدة وغير قابلة للتكرار . يستخدم بشكل رئيسي كمعرفات للكائنات.

مثال علي ذلك

				
					let symbol1 = Symbol('desc');
let symbol2 = Symbol('desc');
console.log(symbol1 === symbol2); // false

				
			

BigInt

يمثل الأعداد الصحيحة الكبيرة جدًا التي تتجاوز نطاق نوع Number

يتم تعريفه باستخدام لاحقة n

مثال علي ذلك

				
					let bigInt = 123456789012345678901234567890n;
let anotherBigInt = BigInt(123456789012345678901234567890);

				
			

الأنواع المرجعية (Reference Types)

Object

مجموعة من الخصائص والأزواج علي شكل (مفتاح-قيمة) و يمكن أن تحتوي الخصائص على أي نوع من القيم

مثال علي ذلك

				
					let person = {
  name: "John",
  age: 30,
  greet: function() {
    console.log("Hello, " + this.name);
  }
};
console.log(person.name); // John
person.greet(); // Hello, John

				
			

Array

قائمة مرتبة من القيم، يمكن أن تحتوي على أي نوع من القيم.

يوفر جافاسكريبت العديد من الدوال المدمجة للعمل مع المصفوفات مثل push(), pop(), shift(), unshift(), map(), filter().

مثال علي ذلك

				
					let fruits = ["Apple", "Banana", "Cherry"];
fruits.push("Orange");
console.log(fruits); // ["Apple", "Banana", "Cherry", "Orange"]

				
			

Function

كائنات قابلة للاستدعاء تنفذ كودًا معينًا

يمكن تعريفها كدالة تقليدية أو كدالة سهمية (arrow function)

مثال علي ذلك

				
					function greet(name) {
  return "Hello, " + name;
}
let greetArrow = (name) => "Hello, " + name;
console.log(greet("Alice")); // Hello, Alice
console.log(greetArrow("Bob")); // Hello, Bob

				
			

Date

يمثل التاريخ والوقت

يوفر دوال للعمل مع التاريخ مثل getFullYear(), getMonth(), getDate()

مثال علي ذلك

				
					let now = new Date();
console.log(now); // التاريخ والوقت الحالي
console.log(now.getFullYear()); // السنة الحالية

				
			

RegExp

يمثل التعبيرات النمطية ويستخدم للبحث أو مطابقة الأنماط في النصوص

مثال علي ذلك

				
					let pattern = /hello/;
let text = "hello world";
console.log(pattern.test(text)); // true

				
			

التحويل بين الأنواع (Type Conversion)

التحويل الضمني (Implicit Conversion)

في JavaScript، التحويل الضمني (Implicit Conversion) يُعرف أيضًا باسم “التحويل التلقائي” (Type Coercion). يحدث هذا التحويل عندما يقوم محرك JavaScript بتحويل نوع بيانات إلى نوع آخر بشكل تلقائي عند الحاجة أثناء تنفيذ العمليات. يمكن أن يؤدي هذا التحويل إلى نتائج غير متوقعة إذا لم يكن المبرمج على دراية بكيفية عمله.

مثال علي ذلك

				
					//تحويل إلى String
let result = 5 + "10"; // "510"
let message = "The answer is " + 42; // "The answer is 42"
//تحويل إلى Number
let sum = "10" - 5; // 5 (يتم تحويل "10" إلى 10)
let product = "10" * 2; // 20 (يتم تحويل "10" إلى 10)
let division = "20" / "4"; // 5 (يتم تحويل كلا القيمتين إلى أعداد)
//تحويل إلى Boolean
if ("") { // القيمة الفارغة تتحول إلى false
  console.log("This won't run");
}

if ("hello") { // أي قيمة غير فارغة تتحول إلى true
  console.log("This will run");
}

				
			

التحويل الصريح (Explicit Conversion)

التحويل الصريح (Explicit Conversion) في JavaScript يشير إلى استخدام الطرق والأساليب الخاصة لتحويل نوع بيانات معين إلى نوع آخر بشكل واضح وصريح. هذا يمكن أن يساعد في تجنب النتائج غير المتوقعة التي قد تحدث بسبب التحويل الضمني.

مثال علي ذلك

				
					let strToNumber = Number('123'); // 123
let numberToString = String(123); // "123"
let strToBoolean = Boolean('true'); // true
let numberToBoolean = Boolean(0); // false

				
			

مثال شامل يوضح الأنواع الأساسية والمرجعية في جافاسكريبت

				
					// الأنواع الأساسية (Primitive Types)

// Number
let age = 25; // نوع عدد
let height = 1.75; // نوع عدد عشري

// String
let firstName = "John"; // نوع نص
let lastName = 'Doe'; // نوع نص باستخدام علامات اقتباس مفردة
let fullName = `Full name: ${firstName} ${lastName}`; // نص باستخدام backticks

// Boolean
let isAdult = age >= 18; // نوع بوليون
let isTall = height > 1.7; // نوع بوليون

// Undefined
let middleName; // لم يتم تعيين قيمة بعد

// Null
let nickname = null; // عدم وجود قيمة

// Symbol
let id = Symbol('uniqueId'); // معرف فريد

// BigInt
let largeNumber = BigInt(123456789012345678901234567890); // عدد كبير جدًا

// الأنواع المرجعية (Reference Types)

// Object
let person = {
  firstName: "John",
  lastName: "Doe",
  age: 25,
  greet: function() {
    console.log(`Hello, my name is ${this.firstName} ${this.lastName}.`);
  }
};

// Array
let hobbies = ["Reading", "Travelling", "Swimming"];
hobbies.push("Cooking"); // إضافة عنصر إلى المصفوفة

// Function
function calculateBMI(weight, height) {
  return weight / (height * height);
}

// Date
let currentDate = new Date(); // التاريخ والوقت الحالي
let currentYear = currentDate.getFullYear(); // السنة الحالية

// RegExp
let emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; // تعبير نمطي للتحقق من البريد الإلكتروني

// استخدام الأنواع المختلفة في البرنامج
console.log("الأنواع الأساسية:");
console.log("العمر:", age);
console.log("الطول:", height);
console.log("الاسم الكامل:", fullName);
console.log("هل هو بالغ؟", isAdult);
console.log("هل هو طويل؟", isTall);
console.log("الاسم الأوسط:", middleName);
console.log("اللقب:", nickname);
console.log("المعرف:", id);
console.log("الرقم الكبير جدًا:", largeNumber);

console.log("\nالأنواع المرجعية:");
console.log("الكائن الشخصي:", person);
person.greet(); // استدعاء الدالة الموجودة داخل الكائن
console.log("الهوايات:", hobbies);
console.log("تاريخ اليوم:", currentDate);
console.log("السنة الحالية:", currentYear);
console.log("تأكيد البريد الإلكتروني 'test@example.com':", emailPattern.test("test@example.com"));

let weight = 70; // وزن الشخص بالكيلوغرام
let bmi = calculateBMI(weight, height);
console.log(`مؤشر كتلة الجسم لـ ${person.firstName}:`, bmi.toFixed(2)); // إلى خانتين عشريتين

// تحويل بين الأنواع
let strAge = String(age); // تحويل الرقم إلى نص
let numAge = Number(strAge); // تحويل النص إلى رقم
console.log("تحويل العمر إلى نص:", strAge);
console.log("تحويل النص إلى رقم:", numAge);

let isAgeString = Boolean(strAge); // تحويل النص إلى بوليون
console.log("تحويل النص إلى بوليون:", isAgeString);

let zero = 0;
let isZeroBoolean = Boolean(zero); // تحويل الرقم 0 إلى بوليون (سيكون false)
console.log("تحويل الرقم 0 إلى بوليون:", isZeroBoolean);


				
			

الشرح 

  • الأنواع الأساسية (Primitive Types):

    • Number: نستخدمه لتخزين الأرقام، سواء كانت صحيحة أو عشرية.
    • String: نستخدمه لتخزين النصوص. يمكن استخدام علامات الاقتباس المفردة أو المزدوجة أو backticks.
    • Boolean: نستخدمه لتخزين القيم المنطقية true أو false.
    • Undefined: نستخدمه عندما لا يتم تعيين قيمة لمتغير.
    • Null: نستخدمه لتمثيل عدم وجود قيمة.
    • Symbol: نستخدمه لإنشاء معرفات فريدة.
    • BigInt: نستخدمه لتخزين الأعداد الكبيرة جدًا التي تتجاوز نطاق نوع Number.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Scroll to Top