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
الدعم الأساسي نعم نعم نعم نعم نعم

مصادر ومواصفات