13. قيم الأرقام الخاصة: NaN و Infinity
تحتوي JavaScript على قيم خاصة مضمنة في نوع Number لتمثيل المستحيلات الرياضية أو الحدود القصوى.
1. Infinity و -Infinity
تمثل قيمة أكبر من أكبر رقم ممكن أو أقل من أصغر رقم ممكن.
javascript console.log(1 / 0); // Output: Infinity console.log(-1 / 0); // Output: -Infinity console.log(2 ** 1024); // Output: Infinity (Overflow)
2. NaN (Not a Number)
NaN هي نتيجة عملية رياضية لا يمكن أن تنتج رقمًا صالحًا.
javascript console.log('hello' / 2); // Output: NaN (You can't divide text) console.log(Math.sqrt(-1)); // Output: NaN (Cannot take square root of a negative number)
فحص حاسم: لا يمكنك اختبار NaN باستخدام المساواة الصارمة (===).
javascript console.log(NaN === NaN); // Output: false (NaN is the only value that is not equal to itself!)
// Use this function instead: (استخدم هذه الدالة بدلاً من ذلك:) console.log(Number.isNaN('test' / 2)); // true