Number.isNaN()
الدالة Number.isNaN()
تُحدِّد إذا كانت القيمة المُمرَّرة إليها هي NaN
ومن النوع Number
. وهذه الدالة هي نسخة أفضل من الدالة الأصلية العامة isNaN()
.
البنية العامة
Number.isNaN(value)
value
القيمة التي ستُختبَر إن كانت NaN
.
القيمة المعادة
قيمة منطقية Boolean
تُشير إذا كانت القيمة هي NaN
ومن النوع Number
(وهي true
) أم لا (وهي false
).
الوصف
لمّا كانت نتيجة استخدام معاملي المقارنة ==
و ===
هي false
عند مقارنة قيم NaN
مع NaN
، فأصبح من الضروري وجود الدالة Number.isNaN()
، فحالة المقارنة السابقة تختلف كليًّا عن جميع أنواع المقارنة في JavaScript.
وبالمقارنة مع دالة isNaN()
العامة، لا تعاني الدالة Number.isNaN()
من مشكلة تحويل الوسيط المُمرَّر إليها إلى عدد؛ فهذا يعني أنَّ من الممكن الآن تمرير القيم التي كانت ستحوّل إلى NaN
، لكنها لا تساوي NaN
؛ وهذا يعني أنَّ القيم العددية والتي قيمتها NaN
ستُعيد true
عند استخدام هذه الدالة.
أمثلة
Number.isNaN(NaN); // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0); // true
// false:
Number.isNaN(true);
Number.isNaN(null);
Number.isNaN(37);
Number.isNaN('37');
Number.isNaN('37.37');
Number.isNaN('');
Number.isNaN(' ');
أما القيم الآتية فكانت ستُعيد true
إذا استعملنا الدالة العامة isNaN()
:
Number.isNaN('NaN'); // false
Number.isNaN(undefined); // false
Number.isNaN({}); // false
Number.isNaN('blabla'); // false
تعويض نقص دعم المتصفحات
ستعمل الشيفرة الآتية لأنَّ القيمة NaN هي القيمة الوحيدة في JavaScript التي لا تساوي نفسها:
Number.isNaN = Number.isNaN || function(value) {
return value !== value;
}
دعم المتصفحات
الميزة | Chrome | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
الدعم الأساسي | 25 | 15 | غير مدعومة | نعم | 9 |
على النقيض من متصفح IE، يدعم متصفح Edge هذه الميزة.
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).