٤.٨ الصورة الكاملة¶
أنواع القيم والكائنات¶
يمكن تلخيص الأنواع التي نناقشها هنا كما يلي. ملاحظة: أنواع اللغة القياسية ثمانية؛ والدوال كائنات قابلة للاستدعاء، وليست نوعًا تاسعًا مستقلًا:
- أنواع البيانات الأولية:
undefined,Boolean,Number,String,BigInt، وSymbol. - الأنواع المركّبة (الكائنات):
Object,Array,Map,Set,WeakMap,WeakSet,Date، وFunction. - القيمة الأولية null:
null.
الدوال: كائنات قابلة للاستدعاء
ملاحظة
الدوال كائنات في JavaScript، وتتميّز بإمكانية استدعائها لتنفيذ الشيفرة.
ملاحظة
لا تقلق إن لم تعرف كل نوع الآن؛ سنشرحه في موضعه.
الأنواع الأولية¶
الأنواع الأولية لا تمتلك خصائص أو طرائق خاصة بها. قيمها غير قابلة للتعديل في موضعها. افحص نوعها باستخدام typeOf primitive.
عند الوصول إلى خاصية أو طريقة لقيمة أولية تدعم ذلك، تستخدم JavaScript غلافًا كائنيًا مؤقتًا. تظل القيمة الأصلية أولية؛ ولا ينطبق هذا على null وundefined.
| النوع الأولي | الغلاف الكائني المقابل | الدالة البانية |
|---|---|---|
| string | String | String() |
| boolean | القيم المنطقية | Boolean() |
| number | Number | Number() |
| bigInt | BigInt | BigInt() |
يمكن الحصول على القيمة الأولية التي يغلفها الكائن باستخدام object.valueOf().
الكائنات¶
الكائن مجموعة خصائص. يمكن إنشاؤه بالصياغة الحرفية {}، أو باستخدام الباني Object والكلمة المفتاحية new، مثلًا: new Object().
الكائنات المضمّنة¶
Date, Array، و Function أمثلة على الكائنات المضمّنة في JavaScript.
يمكن إنشاء الكائنات باستخدام دوال بانية، كما توجد طرائق أخرى لإنشائها.
فيما يلي أمثلة على الكائنات المضمّنة وبوانيها:
| الكائن المضمّن | الدالة البانية | إنشاء نسخة |
|---|---|---|
| Object | Object() | new Object() |
| Date | Date() | new Date() |
| المصفوفة | Array() | new Array() |
| Function | Function() | new Function() |
| String | String() | new String() |
| Number | Number() | new Number() |
| القيم المنطقية | Boolean() | new Boolean() |
القيمة null¶
null قيمة أولية مضمّنة تعبّر عن غياب القيمة. ورغم أن typeof معها يُرجع "object"، فإن null ليست كائنًا ولا أصلًا تُشتق منه جميع الكائنات. لكنها تُستخدم لنهاية سلسلة النماذج الأولية.
typeof null === "object" // true