أنواع البيانات (Data Types) في JavaScript

مقال عن أنواع البيانات في JavaScript يقدم نظرة على المفهوم والتصنيف ويشرح كيفية التحويل بين أنواع البيانات وطريقة التحقق من نوع البيانات مع الأمثلة..

أنواع البيانات (Data Types) في JavaScript

تعتبر أنواع البيانات (Data Types) من الركائز الأساسية في أي لغة برمجة، فهي التي تُحدد طبيعة القيم التي يمكن للبرنامج التعامل معها وكيفية تخزينها ومعالجتها. وفي JavaScript، تُعتبر أنواع البيانات من الموضوعات المهمة التي ينبغي لكل مبرمج فهمها بعمق، نظرًا لأن اللغة ديناميكية وتسمح بتغيير نوع البيانات للمتغير نفسه أثناء التنفيذ.

أنواع البيانات (Data Types)  في JavaScript

يهدف هذا المقال إلى توضيح مفهوم أنواع البيانات في JavaScript وتصنيفها. يشرح المقال أنواع البيانات البدائية (Primitive) في JavaScript مع تقديم أمثلة عملية تساعد على استيعابها. كما يتناول المقال شرحًا لكفية معرفة نوع البيانات أثناء التنفيذ. ويستعرض أيضًا كيفية التحويل بين أنواع البيانات والمزيد من المعلومات المفيدة لفهم أنواع البيانات في JavaScript لنبدأ…

في هذا المقال سنتعرف على :



أنواع البيانات في جافا سكريبت JavaScript Data Types

تشير أنواع البيانات في جافا سكريبت إلى أنواع القيم التي نخزنها أو نتعامل معها. وأنواع البيانات في الأساس هي هياكل بيانات و تحتوي جميع لغات البرمجة على هياكل بيانات مدمجة، ولكنها تختلف من لغة لأخرى. كما يمكن استخدام هذه الهياكل لبناء هياكل بيانات أخرى. (انظر مقال هياكل البيانات - Data Structure)..

في جافا سكريبت JavaScript تُحدد أنواع بيانات طبيعة البيانات المُخزّنة في المتغيرات، مما يؤثر على كيفية معالجة القيم والتفاعل معها في الكود. ولكل نوع بيانات خصائص وسلوكيات مُحددة تُؤثر على كيفية تخزين البيانات والوصول إليها ومعالجتها. (هياكل بيانات)

وفي جافا سكريبت (JavaScript) يمكن تصنيف أنواع البيانات الى فئتين :

1- أنواع البيانات بدائية (Primitive Data Types) :

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

  • القيمة غير المعرّفة (Undefined).
  • الأرقام (Number).
  • الأعداد الكبيرة (BigInt).
  • النصوص (String).
  • الرموز (Symbol)
  • القيم المنطقية (Boolean).
  • القيمة الفارغة (Null).

كانت هناك خمسة أنواع بيانات أساسية فقط. فالنوعين BigInt و Symbol تم تقديمها مع الإصدارات ES5. وES6..


2- أنواع بيانات غير البدائية ( Non-Primitive Data Types )

الأنواع غير البدائية تُعرف هذه بأنواع البيانات المشتقة (Derived Data) هذا لأنها تكون تركيب من البيانات البدائية (Primitive) أي أنواع البيانات غير البدائية تشتق من أنواع البيانات البدائية.، وتُعرف أيضًا أنواع البيانات المرجعية (Reference Types) لانها لا تخزن القيمة نفسها في المتغير، بل تخزن مرجعًا إلى موقع الذاكرة الذي توجد فيه القيمة.ومن امثلة هذه الأنواع :

  • الكائنات (Object): تُستخدم لتخزين مجموعات من القيم في شكل أزواج (مفتاح Key: قيمة Value).
  • المصفوفات (Array) : تُستخدم لتخزين مجموعة من القيم بترتيب معين.
  • الدوال (Function) : تُعتبر نوع بيانات في JavaScript لأنها يمكن تخزينها في متغيرات وتمريرها كقيم.

قد تستخدم هذه الأنواع نوع واحد او اكثر من أنواع البيانات البدائية (Primitive) ، نركز في هذا المقال على أنواع البيانات الأساسية (البدائية Primitive ) في جافا سكريبت والعمل معها.



أنواع البيانات البدائية (Primitive Data Types) في JavaScript

تُعتبر أنواع البيانات البدائية (Primitive) من أهم المفاهيم في JavaScript، إذ تُشكّل اللبنات الأولى التي تُبنى عليها جميع العمليات البرمجية داخل اللغة. وتُستخدم هذه الأنواع لتخزين القيم البسيطة مثل الأرقام والنصوص والقيم المنطقية، وتتميز بأنها تُخزن مباشرة في الذاكرة. في هذا الجزء سنتعرف على أنواع البيانات البدائية في JavaScript، وخصائص كل نوع مع أمثلة توضيحية.

1. القيمة غير المعرّفة (Undefined):

عندما يتم الإعلان عن متغير دون إسناد قيمة إليه، تُعطى له القيمة undefined تلقائيًا، أي أن المتغير موجود في الذاكرة لكن دون أن يحمل قيمة محددة.

...........
let st;
let num , bool;
console.log(st);
console.log(num);
console.log(bool);
...........

يمكن أيضًا تعيين القيمة undefined يدويًا لمتغير، إلا أن ذلك لا يُعد ممارسة شائعة في البرمجة الجيدة.


2. الأرقام (Number):

يتضمن نوع البيانات Number في جافا سكريبت كلاً من الأعداد الصحيحة والأرقام العشرية ( الأعداد ذات النقطة العشرية مثل double و float) .ويتم تمثِّل الأرقام في جافا سكريبت بصيغة 64 بت للأرقام العشرية المُحدَّدة وفقًا لمعيار IEEE 754. كما تدعم جافا سكريبت أيضًا القيم الخاصة مثل Infinity (اللانهاية) والأخطاء الحسابية NaN (ليس رقمًا) والتدوين الأسّي (Exponential Notation ) للأرقام. في المثال التالي توضيح لطريقة تمثيل الأرقام Number في JavaScript…

 ........... 
let num0 = 5; // Integer
let num1 = 5.10; // Floating point number
//Exponential notation of numbers
let num2 = 59e3; //59000
let num3 = 59e-3; //0.059
//Infinity
let num4 = Infinity;
//NaN
let num5 = 'Welcome to JavaScript' / 5;
........... 

3. الأعداد الكبيرة (BigInt):

إن أكبر عدد يُمكن لجافا سكريبت تمثيله بدقة باستخدام النوع ( Number) هو 253 ويُمثَّل بالثابت MAX_SAFE_INTEGER. يُستخدم Bigint لتخزين أعداد صحيحة كبيرة جدًا تتجاوز الحد المسموح به لنوع Number.

بمعنى يُخزِّن Number فقط الأعداد العشرية ذات 64 بت، و لتخزين عدد كبير جدًا، فينبغي علينا استخدام Bigint. ويُمكن إنشاء Bigint بإضافة n إلى نهاية العدد، كما في المثال التالي:

 ........... 
let bigNum = 123456789012345678901234567890n; 
........... 

أُضيف نوع BigInt في الإصدار ES2020 لتخزين الأعداد الصحيحة التي تتجاوز الحد الأقصى لنوع Number يُستخدم هذا النوع عندما تحتاج إلى دقة عالية في العمليات الحسابية على الأعداد الكبيرة جدًا.


4. النصوص(String):

البيانات النصية في جافا سكريبت (JavaScript) عبارة عن سلسلة من الأحرف هذا النوع يمثل البيانات مثل الأحرف characters والنصوص strings. ويمكن إنشاؤها بثلاث طرق مختلفة كما هو موضح أدناه:

  • باستخدام علامات الاقتباس المفردة (Single quote).
  • باستخدام علامات الاقتباس المزدوجة (Double quote).
  • باستخدام علامات الاقتباس العكسية (Backticks).

لا يوجد فرق بين علامتي الاقتباس المفردة والمزدوجة في جافا سكريبت توفر علامات الاقتباس العكسية وظيفة إضافية، حيث تُمكننا من تضمين متغيرات داخلها.

إذن النص string في JavaScript هو نوع من أنواع البيانات يتكوّن من مجموعة أحرف ورموز، ويكتب بين علامات التنصيص كما هو موضح في المثال التالي:

...........
let st1 = "Welcome to JavaScript"; // Using double quotes
let st2 = 'Welcome to JavaScript'; // Using single quotes
let st3 = `Welcome to JavaScript`; // Using backticks 
........... 

تُعتبر Strings من أكثر أنواع البيانات استخدامًا في JavaScript لتمثيل البيانات النصية والتعامل مع واجهات المستخدم.


4. الرموز (Symbol):

الرمز (Symbol) تم تقديم نوع بيانات الرمز في إصدار ES6 من جافا سكريبت. وهي قيم بدائية (primitive) فريدة وثابتة تُستخدم كمُعرفات (IDs) لخصائص الكائنات ( object properties). تُساعد هذه الرموز على إنشاء مفاتيح فريدة (unique keys ) في الكائنات، مما يمنع التعارض مع الخصائص الأخرى.

يوضح المثال أدناه كيف يستخدم (Symbol) لإنشاء القيم البدائية الفريدة والثابتة..حيث أنشأنا الرمزين st1 و st2 لنفس النص.بعد ذلك، قارنا قيمتي st1 و st2 وأعطت النتيجة خطأً. هذا يعني أن كلا الرمزين فريدان..

 ........... 
let st1 = Symbol("id");
let st2 = Symbol("id");
console.log(st1 == st2); //false 
........... 

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

نوع البيانات Boolean يُستخدم لتمثيل القيم المنطقية التي تكون إحدى القيمتين إما صح أوخطأ true أو false، ويُستخدم عادةً في الشروط والمقارنات داخل البرامج لاحظ المثال التالي:

 ........... 
let isLoggedIn = true;
isLoggedIn = false;
........... 

7. القيمة الفارغة (Null):

تشير القيمة null إلى "غياب أي قيمة" أو "عدم وجود شيء"، بل تُشكّل نوعًا منفصلًا لا يحتوي على قيمة حقيقية بل يشير الى الفراغ .ويُنصح باستخدام القيمة الفارغة للقيمة الفارغة أو المجهولة بدلاً من القيمة غير المُعرّفة (undefined)...

 ........... 
let name = null;
let phone = null; 
........... 

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



تحويل أنواع البيانات في جافا سكريبت

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

وتُعد عملية تحويل أنواع البيانات (Type Conversion) في JavaScript من المفاهيم الأساسية التي يجب على المبرمج فهمها جيدًا، لأنها تحدث كثيرًا أثناء تنفيذ البرامج — سواء بشكل صريح (بواسطة المبرمج) أو ضمني (بواسطة محرك JavaScript نفسه).وهذا يعني أن لدينا نوعين من تحويلات الأنواع البيانات في جافا سكريبت:

  • تحويل أنواع البيانات الصريح (Explicit).
  • تحويل أنواع البيانات الضمنى (Implicit).

التحويل الصريح (Explicit) لأنواع البيانات في جافا سكريبت

في كثير من الحالات، يُطلب من المبرمجين تحويل نوع بيانات المتغير يدويًا، يُسمى هذا التحويل الصريح للنوع ويُعرف أيضًا باسم Type Casting، في هذا النوع من التحويل نستخدم دوال البناء أو الدوال المضمنة لتحويل نوع المتغير.

أمثلة على التحويل الصريح (Explicit) لأنواع البيانات في JavaScript:
1- التحويل إلى نص (String):

يمكن تحويل أي نوع إلى نص باستخدام الدالة String() أو بطريقة أسرع باستخدام toString().لاحظ/ي المثال التالي:

........... 
let str0 = String(123);       // "123"
let str1 = String(true);      // "true"
let str2 = (123).toString();  // "123" 
........... 
2- التحويل إلى رقم (Number):

يمكن تحويل القيم النصية أو المنطقية إلى أرقام باستخدام الدالة Number(). لاحظ/ي المثال التالي:

 ........... 
let num0 = Number("10");     // 10
let num1 = Number("10.5");   // 10.5
let num2 = Number(true);     // 1
let num3 = Number(false);    // 0
let num4 = Number("hello");  // NaN 
........... 
3- تحويل إلى قيمة منطقية (Boolean):

يمكن تحويل أي قيمة إلى true أو false باستخدام Boolean().

القيم التي تُعتبر “Falsy” (أي تُحوَّل إلى false) هي: 0, "" (النص الفارغ), null, undefined, NaN, وfalse نفسه. لاحظ/ي المثال التالي:

........... 
let bool0 = Boolean(0);        // false
let bool1 = Boolean("Hello");  // true
let bool2 = Boolean("");       // false"
let bool3 = Boolean(null);     // false 
........... 

التحويل الضمني (Implicit) للأنواع البيانات  في جافا سكريبت

ويُعرف أيضًا باسم Type Coercion، وهو التحويل الذي يحدث تلقائيًا عندما يحتاج محرك JavaScript إلى نوع معين لتنفيذ عملية ما. حيث يتم هذا التحويل في الخلفية بدون تدخل المبرمج.

أمثلة على التحويل الضمنى (Implicit) لأنواع البيانات في JavaScript:
1-التحويل إلى نص String :

باستخدام عامل الجمع "+" نستطيع تحويل قيم مختلفة ضمنيًا إلى نوع بيانات string. لاحظ/ي الأمثلة التالية:

 ........... 
let str0 = "10" + 30; // Converts number to string
let str1= "10" + null; // Converts null to string
let str2 = '10' + false; // Converts  boolean value to string
........... 
2- التحويل إلى رقم Number:

بإستثناء معامل الجمع تقوم معاملات العمليات الحسابية مثل الطرح (-) أو الضرب () أو القسمة (/)، بتحويل أي نوع بيانات إلى رقم. لاحظ/ي الأمثلة التالية:

 ........... 
let num0 = '10' / 2; // Converts '10' to 2
let num1 = '10' - '2'; // Converts '10' and '2' to 10 and 2
let num2 ='10' * false; // Converts true to 0
let num3 = '10' - true; // Converts false to 1
let num4 ='hello' / 2 // converts 'hello' to NaN 
........... 

عند إجراء عملية حسابية بين رقم و قيمة null فإن null تتحول الى البيانات Number وتأخذ القيمة صفر يجب الحذر هنا عند وجود قيمة null كمقسوم عليه لنرى الأمثلة:

 ...........
//Convert null to 0 
let num5 = 10 + null; 
let num6 = 10 * null;  
let num7 = 10 -null;
let num8 = null / 2; 
........... 

عند اجراء عملية حسابية بين نوع البيانات undefined مع الأنواع Number و Boolean تتحول النتيجة إلى NaN. لاحظ/ي الأمثلة التالية:

 ........... 
let num9 = 10 * undefined;
let num10 = false +undefined; 
........... 
3-تحويل إلى قيمة منطقية Boolean :

عندما تستخدم معامل النفي Not (!) وعامل Nullish (!!) مع أي متغير، فإنه يحول قيمته ضمناً إلى القيمة المنطقية. لاحظ/ي الأمثلة التالية:

........... 
// Convert numbert to boolean
let bool0 = !1;      //false
let bool00 = !!1;     //true
let bool1 = !0;       //true
let bool01 = !!0;     //false
let bool2 = !123;     //false
let bool02 = !!123;   //true
let bool3 = !null;    //true
let bool03 = !!null;  //false
//convert string to boolean
let bool4= !"Hello";    //false
let bool04 = !!"Hello"; //true
let bool5 = !"";        //true"
let bool05 =!!"";       //false" 
........... 

تشير الأرقام 1 و 0 الى القيم true و false على التوالي ويشير النص الفارغ "" الى القيمة false والنص غير الفارغ الى القيمة true .

4- التحويل في المقارنات:

عند استخدام المقارنة العادي (==)، يقوم JavaScript بتحويل الأنواع تلقائيًا لمطابقتها. بينما المقارنة الصارم (===) لا تقم بأي تحويل لاحظ/ي الأمثلة التالية:

 ........... 
let var0 = "5" == 5;   //true  
let var1= '5' === 5;   //false
let var2 = 1 == true;  //true
let var3 = 1 === true; //false 
........... 


التحقق من نوع البيانات (Data Type) في JavaScript

في JavaScript تُستخدم الكلمة المحجوزة typeof لمعرفة نوع البيانات (Data Type) الخاص بأي متغير أو قيمة. وهي أداة مفيدة جدًا للمبرمجين أثناء كتابة الأكواد أو اختبارها، إذ تُساعد في تحديد نوع القيمة المخزّنة داخل المتغيرات، خاصة في لغة ديناميكية مثل JavaScript حيث يمكن أن يتغير نوع المتغير أثناء التنفيذ.

تُعيد الدالة typeof نص (string) يمثّل نوع القيمة أو المتغير الذي يتم تمريره إليها. ويمكن استخدام بطريقتين :

........... 
let str = "Hello";
let num = 10;
console.log(typeof str);  // "string"
console.log(typeof(num));  // "number" 
........... 

كلا الطريقتين صحيحتين وتعطينا نفس النتيجة.لنرَ بعض الأمثلة لتوضيح طريقة عملها:

 ........... 
console.log(typeof "Hello");  // "string"
console.log(typeof 123);   // "number"
console.log(typeof true); // "boolean"
console.log(typeof undefined);  // "undefined"
console.log(typeof null);// "object" 
console.log(typeof Symbol("id")); // "symbol"
console.log(typeof 123n);   // "bigint"
console.log(typeof Infinity); // "number"
console.log(typeof 'Welcome to JavaScript' / 5); // "NaN" 
........... 

ملاحظة : من أشهر الخصائص الغريبة في JavaScript عند استخدام typeof للقيمة null تعطي النتيجة "object"، يعود هذا السلوك إلى خطأ تاريخي في تصميم اللغة، لكنه ما زال موجودًا للحفاظ على التوافق مع الإصدارات القديمة. ببساطة تُعتبر typeof أداة بسيطة لكنها فعّالة لمعرفة نوع البيانات أثناء التنفيذ في JavaScript.



لماذا علينا معرفة أنواع البيانات (Data Types) في JavaScript

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

1. التعامل الصحيح مع القيم والعمليات الرياضية

تؤثر أنواع البيانات بشكل مباشر على كيفية تفسير القيم وكيفية إجراء العمليات.

العمليات: يحدد نوع البيانات العملية التي ستُجرى. فمثلاً:

  • الجمع (+) بين رقمين ينتج عنه عملية جمع حسابية ( 2 + 2 = 4)،
  • بينما الجمع (+) بين نصيين (strings) ينتج عنه عملية دمج أو ربط "Hello" + "World" = "HelloWorld").

الأخطاء: عدم معرفة النوع قد يؤدي إلى نتائج غير متوقعة أو أخطاء منطقية (bugs)، خاصةً عند استخدام عوامل المقارنة أو التحويل الضمني للأنواع (Type Coercion) في جافاسكريبت.

2. التحقق من الصحة والمقارنة (Validation and Comparison)

للمقارنة الصحيحة بين القيم، يجب معرفة أنواعها:

المساواة:

  • عامل المساواة العادي (==) يقوم بالتحويل الضمني للأنواع، مما قد يعطي نتائج مضللة ('5' == 5 تكون true ).
  • عامل المساواة الصارم (===) يتطلب أن يكون النوع والقيمة متطابقين، وهو الأفضل لتجنب المشاكل '5' === 5 تكون false). معرفة النوع أمر أساسي لاستخدام=== بشكل صحيح.

التحقق: عند استقبال بيانات من المستخدم أو من واجهة برمجية (API)، من الضروري التحقق من أن نوع البيانات المستلم هو النوع المتوقع (مثل التحقق من أن قيمة العمر هي رقم وليس نص).

3. تخصيص الذاكرة والأداء

على الرغم من أن جافا سكريبت تتعامل مع تخصيص الذاكرة تلقائيًا، إلا أن فهم الأنواع يساعد في:

  • الأنواع الأولية (Primitives): مثل string, number, boolean, null, undefined, و symbol، تُخزن مباشرةً في الذاكرة المخصصة للمتغير (stack).
  • الأنواع المرجعية (Reference Types): مثل object (بما في ذلك المصفوفات والدوال)، تُخزن في مكان آخر في الذاكرة (heap)، والمتغير يحمل فقط مرجعًا (عنوانًا) لموقعها.

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

4. استخدام الدوال والأساليب (Methods) الصحيحة

كل نوع بيانات في جافا سكريبت يأتي مع مجموعة خاصة به من الدوال (methods):

  • النصوص (string): لها دوال مثل toUpperCase(), trim(), و substring().
  • الأرقام (number): لها دوال مثل toFixed(), و toPrecision().
  • المصفوفات (Array): لها دوال قوية مثل map(), filter(), و reduce().

معرفة نوع المتغير يتيح لك استخدام الدالة المناسبة دون التسبب في خطأ "غير مُعَرَّف" (TypeError).

باختصار، فهم أنواع البيانات في جافا سكريبت ليس مجرد معرفة نظرية، بل هو أداة عملية تُمَكّنك من: تجنب الأخطاء و كتابة كود موثوق به. كما يساعد على فهم كيفية عمل اللغة على مستوى أعمق و استغلال الإمكانات الكاملة لكل نوع من البيانات.



حول أنواع البيانات في JavaScript

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

  • أنواع بيانات ديناميكية: في JavaScript لا يرتبط المتغير بنوع بيانات محدد، بل يعتمد النوع على القيمة المخزّنة فيه. يتم تحديد نوع البيانات أثناء تنفيذ الكود، مما يجعل اللغة ديناميكية ومرنة في التعامل مع القيم المختلفة.
  • لا يوجد نوع منفصل للأعداد الصحيحة: في JavaScript لا يوجد نوع خاص بالأعداد الصحيحة (Integer)، فجميع الأرقام سواء كانت صحيحة أو عشرية (Floating) تُعتبر من نوع Number الذي يشمل الحالتين معًا.
  • عدم وجود نوع خاص بالأحرف (Character): لا تميز JavaScript بين الحرف والنص، فكل من الحروف والكلمات تُعتبر من نوع String، أي أن الحرف هو مجرد نص مكوَّن من رمز واحد.
  • الفرق بين Undefined و Null: القيمة Undefined تُشير إلى متغير تم الإعلان عنه دون إسناد قيمة له، بينما Null تُستخدم لتعيين قيمة “فارغة” صراحةً للدلالة على غياب أي قيمة.
  • قيمة NaN لا تساوي نفسها: الرمز NaN هو اختصار لعبارة Not-a-Number ويُستخدم لتمثيل نتيجة حساب غير صالحة. ومن المدهش أن NaN يُعتبر من نوع Number ولكنه لا يساوي نفسه عند المقارنة!
  • كل شيء يمكن أن يتصرف ككائن (Object): في JavaScript تُعامل الدوال (Functions) و المصفوفات (Arrays) وحتى الأنواع البدائية (Primitive Types) كما لو كانت كائنات، حيث يمكن الوصول مؤقتًا إلى خصائصها وطرقها وكأنها كائنات حقيقية.
  • الرموز (Symbols) فريدة دائمًا: كل Symbol يُنشأ فى JavaScript هو فريد من نوعه ولا يساوي أي رمز آخر، حتى وإن كان له نفس الوصف النصي حيث تُستخدم الرموز عادة لإنشاء خصائص أو مفاتيح خاصة (من نوع private) في الكائنات.

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


جميع الأمثلة لهذا المقال متوفرة على الرابط هنا.


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

إرسال تعليق

فضلاً اترك تعليق
موافقة ملفات تعريف الارتباط
لتحسين تجربتك… يستخدم موقعنا ملفات تعريف الارتباط (Cookies)
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.