الكائن 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 لتفاصيل عن دعم المتصفحات لها.

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