الكائن Number
في JavaScript
الكائن Number
هو كائن مُغلِّف (wrapper object) الذي يسمح لك بالعمل مع القيم العددية، وتُنشَأ كائنات Number
باستخدام الدلة البانية Number()
.
البنية العامة
new Number(value);
value
القيمة العددية التي سيحملها الكائن المُنشَأ.
الوصف
الاستخدامات الأساسية لكائنات Number
هي:
- إذا لم يكن بالإمكان تحول الوسيط المُمرَّر إلى الدالة البانية إلى قيمة رقمية، فستُعاد القيمة
NaN
. - عند استخدام الدالة
Number
دون المعاملnew
(أي أنها ليست دالةً بانيةً)، فيمكن أن تُستخدَم لإجراء تحويل بين أنواع القيم.
الخاصيات التابعة للدالة البانية Number
Number.EPSILON
أقل قيمة تفصل بين رقمين يمكن تمثيلهما في JavaScript.
Number.MAX_SAFE_INTEGER
أكبر قيمة «آمنة» للأعداد الصحيحة في JavaScript (وهي 253 -1
).
Number.MAX_VALUE
أكبر عدد موجب يمكن تمثيله.
Number.MIN_SAFE_INTEGER
أكبر قيمة «آمنة» للأعداد الصحيحة في JavaScript (وهي (253 -1)-
).
Number.MIN_VALUE
أصغر عدد موجب يمكن تمثيله، أي أقرب رقم موجب إلى الصفر (لكنه ليس صفرًا).
Number.NaN
قيمة خاصة هي Not-A-Number.
Number.NEGATIVE_INFINITY
قيمة خاصة تمثِّل اللانهاية السالبة (ناقص لانهاية).
Number.POSITIVE_INFINITY
قيمة خاصة تمثِّل اللانهاية الموجبة (زائد لانهاية).
Number.prototype
تسمح هذه الخاصية بإضافة خاصيات متاحة لجميع الكائنات التي نوعها هو Number
.
الدوال التابعة للدالة البانية Number
Number.isNaN()
تحديد إذا كانت القيمة المُمرَّرة هي NaN
أم لا.
Number.isFinite()
تحديد إذا كانت القيمة المُمرَّرة هي عدد محدود أم لا.
Number.isInteger()
تحديد إذا كانت القيمة المُمرَّرة هي عددٌ صحيحٌ أم لا.
Number.isSafeInteger()
تحديد إذا كانت القيمة المُمرَّرة هي عددٌ صحيحٌ آمن أم لا (أي أنَّ العدد بين -(253 - 1)
و 253 - 1
)
Number.parseFloat()
لها نفس عمل الدالة parseFloat()
التابعة للكائن العام.
Number.parseInt()
لها نفس عمل الدالة parseInt()
التابعة للكائن العام.
الكائن prototype
النسخ المُنشَأة من الدالة البانية Number
ترث الدوال والخاصيات من كائنNumber.prototype
؛ وكما في جميع الدوال البانية، يمكنك إجراء تغييرات إلى كائن prototype
في الدالة البانية لكي تنعكس تلك التعديلات إلى جميع نسخ الكائن Number
.
الخاصيات
Number.prototype.constructor
تُحديد الدالة التي ستُنشِئ كائن prototype التابع للكائن Number
؛ راجع صفحة الخاصية Object.prototype.constructor
لمزيدٍ من التفاصيل.
الدوال
Number.prototype.toExponential()
إعادة سلسلة نصية تُمثِّل العدد في شكل الكتابة العلمي (exponential notation).
Number.prototype.toFixed()
إعادة سلسلة نصية تُمثِّل العدد مع وضع فاصلة عشرية فيه (fixed-point notation).
Number.prototype.toPrecision()
إعادة سلسلة نصية تُمثِّل العدد بالدقة المُحدَّدة بشكل الكتابة العلمي (exponential) أو مع وضع فاصلة عشرية (fixed-point).
Number.prototype.toString()
إعادة سلسلة نصية تُمثِّل العدد بالأساس العددي المُحدَّد (radix). وهي إعادة تعريف للدالة Object.prototype.toString
.
Number.prototype.valueOf()
إعادة القيمة الأولية (primitive value) للكائن المُحدَّد. وهي إعادة تعريف للدالة Object.prototype.valueOf
.
أمثلة
استخدام الكائن Number
لإسناد قيم رقمية إلى المتغيرات
المثال الآتي يستخدم الخاصيات الساكنة (static properties) التابعة للكائن Number
لإسناد قيم إلى عدِّة متغيرات رقمية:
var biggestNum = Number.MAX_VALUE;
var smallestNum = Number.MIN_VALUE;
var infiniteNum = Number.POSITIVE_INFINITY;
var negInfiniteNum = Number.NEGATIVE_INFINITY;
var notANum = Number.NaN;
المجال العددي لكائنات Number
المثال الآتي يُظهِر أكبر وأصغر قيم عددية صحيحة يمكن تمثيلها في كائن Number
(للتفاصيل، ارجع إلى معيار ECMAScript القسم 6.1.6 المُعنوَن The Number Type):
var biggestInt = 9007199254740991;
var smallestInt = -9007199254740991;
عند تفسير البيانات التي حوِّلَت إلى صيغة JSON، فستُعدّ القيم الخارجة عن هذا المجال غير صالحة عندما يحاول مُفسِّر JSON تحويلها إلى النوع Number
، لذا يمكن استخدام نوع البيانات String
كحل التفافي على هذه المشكلة.
استخدام Number
لتحويل كائن Date
المثال الآتي يحوّل الكائن Date
إلى قيمةٍ رقمية باستخدام Number
كدالة:
var d = new Date('December 17, 1995 03:24:00');
console.log(Number(d));
ناتج المثال السابق هو: 819199440000
.
تحويل السلاسل النصية التي تحوي أعدادًا إلى قيم عددية
Number('123') // 123
Number('12.3') // 12.3
Number('') // 0
Number('0x11') // 17
Number('0b11') // 3
Number('0o11') // 9
Number('foo') // NaN
Number('100a') // NaN
دعم المتصفحات
الميزة | Chrome | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
الدعم الأساسي | نعم | نعم | نعم | نعم | نعم |
انظر إلى صفحة كل خاصية ودالة تابعة للكائن Number
لتفاصيل عن دعم المتصفحات لها.
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition). أضاف هذا المعيار الخاصيات والدوال:
EPSILON
وisFinite
وisInteger
وisNaN
وparseFloat
وparseInt
. - معيار ECMAScript 5.1.
- معيار ECMAScript 1st Edition .