NaN
الخاصية العامة NaN هي قيمةٌ لا تُمثِّل عددًا (وهي اختصارٌ للعبارة Not-A-Number).
| سمات الخاصية NaN | |
|---|---|
| قابلة للكتابة | لا |
| قابلة للإحصاء | لا |
| قابلة للضبط | لا |
البنية العامة
NaN
الوصف
الخاصية NaN هي خاصيةٌ للكائن العام (global object) أي أنها متغيرٌ في المجال العام.
القيمة الابتدائية للخاصية NaN هي Number.NaN، والخاصية NaN غير قابلة للضبط وغير قابلة للكتابة في المتصفحات الحديثة، لكن مع ذلك حاول تجنّب الكتابة عليها.
من النادر استخدام القيمة NaN في البرامج، لكنها القيمة التي ستُعاد عندما تفشل دوال الكائن Math (مثل Math.sqrt(-1)) أو عند فشل تفسير قيمة رقمية (مثل parseInt("blabla")).
اختبار إذا كانت القيمة NaN
لا تساوي القيمة NaN (عبر معاملات المقارنة == و != و === و !==) أيّة قيمة أخرى، بما في ذلك قيم NaN الأخرى؛ لذا استخدام الدالة Number.isNaN() أو الدالة isNaN() لمعرفة إذا كانت القيمة المعنية هي NaN، أو جرب مقارنة القيمة مع نفسها، فالقيمة NaN هي القيمة الوحيدة التي لا تساوي نفسها.
NaN === NaN; // false
Number.NaN === NaN; // false
isNaN(NaN); // true
isNaN(Number.NaN); // true
function valueIsNaN(v) { return v !== v; }
valueIsNaN(1); // false
valueIsNaN(NaN); // true
valueIsNaN(Number.NaN); // true
دعم المتصفحات
| الميزة | Chrome | Firefox | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| الدعم الأساسي | نعم | نعم | نعم | نعم | نعم |
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).
- معيار ECMAScript 5.1.
- معيار ECMAScript 1st Edition .