تتضمن لغة JavaScript عدة طرق للإشارة إلى غياب قيمة. هذه الصفحة
يصف الطريقتين الأكثر شيوعًا، وهما نوعا البيانات null
وundefined
.
null
تمثل الكلمة الرئيسية null
غياب قيمة عن قصد. null
قيمة أساسية، على الرغم من أن عامل التشغيل typeof
يعرض أن null
يمثل كائنًا.
هذا خطأ وقد استمر
من الإصدار الأول من JavaScript وتركنا عمدًا
بدون معالجة لتجنب تعطيل السلوك المتوقع عبر الويب.
typeof null
> object
يمكنك تعريف متغيّر على أنّه null
مع توقع أنها تعكس إما القيمة المخصصة لها في وقت ما
نقطة في نص برمجي أو أي قيمة غير موجودة يمكنك أيضًا تعيين null
قيمة إلى مرجع موجود لمسح قيمة سابقة.
undefined
undefined
هي قيمة أولية يتم تحديدها للمتغيّرات.
التي تم الإعلان عنها للتو، أو على القيمة الناتجة لعملية
لا تكون ذات قيمة ذات مغزى. على سبيل المثال، يمكن أن يحدث ذلك عندما تعلن
وظيفة في وحدة تحكم المطوّرين في المتصفح:
function myFunction() {}
> undefined
تعرض الدالة بشكل صريح undefined
عند استخدام عبارة return
الخاصة بها.
لا ينتج عنه أي قيمة.
(function() {
return;
}());
> undefined
مقارنة بين null
وundefined
على الرغم من تداخل الوظائف بين undefined
وnull
، إلا أنّ هناك
لأغراض مختلفة. بالمعنى الأكثر صرامة، تمثل null
قيمة
عمدًا على أنها "فارغة"، وundefined
يمثل نقصًا في أي قيمة مخصصة.
null
وundefined
متساويتان تمامًا، ولكن ليستا متساويتين تمامًا.
يجبر عامل المساواة الحرة المعاملات من أنواع مختلفة على المنطقية
مما يجعل null
وundefined
كلاهما false
. عامل المساواة الصارم
تعتبر معاملات أنواع البيانات المختلفة غير متساوية.
null == undefined
> true
null === undefined
> false
بخلاف الكلمة الرئيسية المحجوزة null
، تعد undefined
سمة من سمات
كائن عمومي. كان هذا تصميمًا
اتخاذ القرار في مرحلة مبكرة من تطوير JavaScript، كما أنّ ذلك يتيح للمتصفّحات القديمة
استبدِل undefined
تمامًا. في المتصفحات الحديثة، لا يزال من الممكن استخدام
undefined
كمعرِّف في النطاقات غير العمومية، متجاوزًا قيمته في
نطاق هذا البيان. يجب أبدًا استخدام undefined
كمعرّف. أُنشأها جون هنتر، الذي كان متخصصًا
إلى سلوك غير متوقع ومن المحتمل أن يربك المستخدمين المستقبليين
قاعدة التعليمات البرمجية.
التحقق من فهمك
ماذا يعرض typeof null
؟
undefined
string
primitive
object