أنواع البيانات في JavaScript
توضح هذه المقالة أنواع البيانات في JavaScript۔
YouTube Video
أنواع البيانات في JavaScript
JavaScript لديها أنواع بيانات لتصنيف القيم، والتي يمكن تقسيمها بشكل عام إلى أنواع أولية و أنواع كائنية۔ أنواع البيانات تحدد نوع البيانات المخزنة في المتغير وتؤثر على كيفية معالجتها۔
الأنواع الأولية
الأنواع الأولية هي أنواع بيانات بسيطة تمثل قيمة واحدة۔ JavaScript تحتوي على 7 أنواع أولية كما يلي۔
number
1let num = 42;
2let pi = 3.14;
3
4console.log("Value of num:", num);
5console.log("Value of pi:", pi);
number
هو نوع يستخدم للتعامل مع القيم الرقمية، بما في ذلك الأعداد الصحيحة والأعداد ذات الفاصلة العشرية۔ التعامل مع القيم التي تتجاوز حدود معينة يؤدي إلىInfinity
أوNaN
(ليس رقماً)۔
1// Decimal calculations
2console.log(0.1 + 0.2 === 0.3); // false
3console.log(0.1 + 0.2); // 0.30000000000000004
4
5// Calculations with large numbers
6console.log(9007199254740991 + 1); // correct value
7console.log(9007199254740991 + 2); // incorrect value
- في JavaScript، يتم تمثيل الأرقام كأرقام بفاصلة عائمة۔ نتيجةً لذلك، قد لا يتم التعبير عن بعض الأرقام العشرية (خاصةً تلك التي لا يمكن تمثيلها بدقة في النظام الثنائي) بشكل دقيق۔
- عندما تكون الحسابات الدقيقة مطلوبة، مثل القيم النقدية، من الضروري تجنب مثل هذه الأخطاء الناتجة عن التقريب۔ على سبيل المثال، يمكنك استخدام
BigInt
أو تعديل عدد المنازل العشرية باستخدامtoFixed()
۔
string
1let greeting = "Hello, world!";
2let char = 'A';
3const message = `"${greeting}" in JavaScript`;
4
5console.log("Value of greeting:", greeting);
6console.log("Value of char:", char);
7console.log("Value of message:", message);
string
هو نوع بيانات يستخدم للتعامل مع النصوص، ويمثل تسلسلاً من الأحرف۔ يتم تمثيله بتضمين النص بين علامات اقتباس مفردة ('
) أو مزدوجة (")۔ اعتباراً من ES6، تسمح القوالب النصية بتضمين المتغيرات بسهولة باستخدام علامتي تنصيص مائلتين (
)۔ لتضمين متغير، استخدم الصيغة${}
۔
boolean
1let isAvailable = true;
2let hasError = false;
3
4console.log("Value of isAvailable:", isAvailable);
5console.log("Value of hasError:", hasError);
boolean
يمثل قيمة منطقية ويمكن أن يكون له قيمتان فقط:true
أوfalse
۔ يُستخدم كنتيجة للتعبيرات الشرطية أو كراية۔
null
1let result = null;
2
3console.log("Value of result:", result);
null
هو نوع بيانات يشير صراحةً إلى 'لا قيمة'.۔null
يتم تعيينه من قِبل المطورين للإشارة إلى فراغ مقصود۔
undefined
1let score;
2let subject = undefined;
3
4console.log("Value of score:", score); // undefined
5console.log("Value of subject:", subject);
undefined
هو نوع بيانات يعني 'غير معرف'.۔undefined
يتم تعيينه تلقائياً عندما يتم الإعلان عن متغير ولكن لم يتم تعيين قيمة له۔
bigint
1let bigIntValue = 9007199254740991n;
2let anotherBigInt = 123456789012345678901234567890n;
3
4console.log("Value of bigIntValue:", bigIntValue);
5console.log("Value of anotherBigInt:", anotherBigInt);
bigint
هو نوع بيانات للتعامل مع الأعداد الصحيحة الكبيرة۔bigint
يسمح بتمثيل دقيق للأعداد الصحيحة الكبيرة التي لا يمكن تمثيلها باستخدام نوعnumber
۔ يتم تمثيل القيم الحرفية لـbigint
بإضافةn
إلى نهاية رقم۔bigint
هو نوع للتعامل مع الأعداد الصحيحة ذات الحجم العشوائي، دون قيود على النطاق۔ مع ذلك، لا يمكن استخدامbigint
وnumber
معًا بشكل مباشر، ولذلك يُنصح بالحذر۔
Symbol
1let sym1 = Symbol('id');
2let sym2 = Symbol('id');
3
4console.log("sym1 === sym2:", sym1 === sym2); // false
Symbol
هو نوع بيانات يُستخدم لإنشاء معرفات فريدة۔ يتم إنشاؤه باستخدامSymbol()
ويمكن استخدامه كخاصية لكائن۔ على عكس أنواع البيانات الأولية الأخرى، يتمتعSymbol
بقيم فريدة، لذلك حتى مع نفس المحتوى، يُعتبرSymbol
مختلفًا۔
أنواع الكائنات
أنواع الكائنات هي هياكل بيانات يمكنها تخزين قيم متعددة۔ الكائن هو مجموعة من أزواج المفتاح والقيمة ويمكن أن يحتوي على خصائص وطرق۔
Object
1let person = {
2 name: "John",
3 age: 30,
4 isEmployee: true
5};
6console.log(person.name); // John
Object
هو مجموعة من الخصائص (أزواج مفتاح-قيمة) يمكنها تخزين أنواع مختلفة من البيانات۔ يتم تمثيل الكائنات بأقواس معقوفة{}
، ويتم ربط كل خاصية بـ:
بين المفتاح والقيمة۔
Array
1let numbers = [10, 20, 30];
2console.log(numbers[0]); // 10
3console.log(numbers[1]); // 20
4console.log(numbers[2]); // 30
5console.log(numbers[3]); // undefined
Array
هو قائمة تحتوي على قيم متعددة بطريقة مرتبة۔ يتم تمثيل المصفوفات بأقواس مربعة[]
، ويتم فصل القيم بفواصل,
۔ يتم الوصول إلى كل عنصر باستخدام فهرس يبدأ من 0۔
Function
1function greet(name) {
2 return "Hello, " + name;
3}
4console.log(greet("Alice")); // Hello, Alice
- الدوال هي نوع من الكائنات وقطع من الكود يمكن إعادة استخدامها۔ يمكن تعريف الدوال باستخدام الكلمة المفتاحية
function
۔
أنواع كائنات أخرى
- تحتوي JavaScript أيضًا على أنواع كائنات مدمجة مثل
Date
وRegExp
وMap
وSet
۔ تتعامل هذه مع البيانات وفقًا لحالات استخدام معينة۔
تحويل النوع
يتم إجراء تحويل الأنواع الضمني وتحويل الأنواع الصريح بشكل متكرر في JavaScript۔
تحويل النوع الضمني
- قد يقوم JavaScript بتحويل الأنواع تلقائيًا عند تنفيذ العمليات بين أنواع مختلفة۔
1let result = 5 + "5"; // "55" (the number is converted to a string)
2
3console.log(result);
- في هذا المثال، يتم تحويل الرقم
5
ضمنياً إلى سلسلة نصية، مما ينتج السلسلة النصية"55"
.۔
تحويل النوع الصريح
- يمكن للمطورين أيضًا إجراء تحويل الأنواع بشكل صريح۔
1let num = "123";
2let convertedNum = Number(num); // Converts "123" to the number 123
3
4console.log(typeof num);
5console.log(typeof convertedNum);
- في هذا المثال، يتم استخدام دالة
Number()
لتحويل السلسلة النصية"123"
صراحةً إلى الرقم123
.۔
التحقق من النوع
في JavaScript، يمكنك استخدام المعامل typeof
للتحقق من نوع بيانات المتغير۔
1// Output: The type of 42 is: number
2console.log('The type of 42 is:', typeof 42);
3
4// Output: The type of 42 is: bigint
5console.log('The type of 42n is:', typeof 42n);
6
7// Output: The type of "hello" is: string
8console.log('The type of "hello" is:', typeof "hello");
9
10// Output: The type of true is: boolean
11console.log('The type of true is:', typeof true);
12
13// Output: The type of undefined is: undefined
14console.log('The type of undefined is:', typeof undefined);
15
16// Output: The type of null is: object
17console.log('The type of null is:', typeof null);
18
19// Output: The type of Symbol() is: symbol
20console.log('The type of Symbol() is:', typeof Symbol());
21
22// Output: The type of {} is: object
23console.log('The type of {} is:', typeof {});
24
25// Output: The type of function () {} is: function
26console.log('The type of function () {} is:', typeof function () {});
الخاتمة
- أنواع البيانات الأولية تشمل
number
وstring
وboolean
وnull
وundefined
وsymbol
۔ - أنواع الكائنات تشمل
Object
وArray
وFunction
وغيرها۔ - نظرًا لأن التحويلات التلقائية والصريحة للأنواع تحدث، فمن المهم فهم الاستخدام الصحيح لأنواع البيانات۔
يمكنك متابعة المقالة أعلاه باستخدام Visual Studio Code على قناتنا على YouTube.۔ يرجى التحقق من القناة على YouTube أيضًا.۔