جافا سكريبت لديها نوع واحد فقط من number .
Numbers يمكن أن تكون مكتوبة مع أو بدون الكسور العشرية.
أرقام جافا سكريبت
جافا سكريبت numbers يمكن أن تكون مكتوبة مع أو بدون الكسور العشرية:
مثال
var x = 34.00; // A number with decimals
var y = 34; // A number without decimals
أعداد صغيرة كبيرة أو اضافية اضافية يمكن ان تكون مكتوبة مع (الأس) العلمي تدوين:
مثال
var x = 123e5; // 12300000
var y = 123e-5; // 0.00123
أرقام جافا سكريبت هي دائما 64 بت هذه النقطة العائمة
على عكس العديد من لغات البرمجة الأخرى، جافا سكريبت لا يعرف أنواع مختلفة من أرقام، مثل الأعداد الصحيحة، قصيرة، طويلة، الفاصلة العائمة الخ
يتم تخزين أرقام جافا سكريبت دائما كأرقام نقطة ضعف الدقة العائمة، في أعقاب الدولي IEEE 754 معيار.
هذا الشكل مخازن الأرقام في 64 بت، حيث يتم تخزين رقم (الكسر) في بت 0-51، داعية في بت 52-62، وعلامة في بت 63:
القيمة (ويعرف أيضا باسم الكسر / العشري) | الأس | إشارة |
---|---|---|
52 بت (0-51) | 11 بت (52-62) | 1 بت (63) |
دقة
تعتبر صحيحة (أرقام من دون فترة أو تدوين الأس) دقيقة تصل إلى 15 رقما.
مثال
var x = 999999999999999; // x will be 999999999999999
var y = 9999999999999999; // y will be 10000000000000000
انها محاولة لنفسك » الحد الأقصى لعدد عشري هو 17، ولكن النقطة العائمة حسابي ليست دائما دقيقة بنسبة 100٪:
لحل المشكلة أعلاه، فإنه يساعد على يضرب ويقسم:
عشري
جافا سكريبت يفسر الثوابت الرقمية كما عشري إذا ما سبقتها 0X.
لم يكتب عددا مع رائد صفر (مثل 07).
بعض إصدارات جافا سكريبت تفسير الأرقام كما ثماني لو أنها مكتوبة مع رائد الصفر.
افتراضيا، جافا سكريبت يعرض أرقام كقاعدة 10 الكسور العشرية.
ولكن يمكنك استخدام toString() طريقة لأرقام الناتج كقاعدة 16 (عرافة)، قاعدة 8 (ثماني)، أو قاعدة 2 (الثنائية).
مثال
var myNumber = 128;
myNumber.toString(16); // returns 80
myNumber.toString(8); // returns 200
myNumber.toString(2); // returns 10000000
انها محاولة لنفسك » ما لا نهاية
ما لا نهاية (أو -Infinity) هو القيمة سيعود جافا سكريبت إذا كنت تحسب عدد خارج أكبر عدد ممكن.
مثال
var
myNumber = 2;
while (myNumber != Infinity) {
// Execute until Infinity
myNumber = myNumber * myNumber;
}
انها محاولة لنفسك » القسمة على 0 (صفر) كما يولد إنفينيتي:
مثال
var x = 2 / 0;
// x will be Infinity
var y = -2 / 0;
// y will be -Infinity
انها محاولة لنفسك » اللانهاية هو رقم: typeOf إنفينيتي يعود الرقم.
NaN - ليست عدد
NaN هو كلمة محجوزة جافا سكريبت مما يدل على أن القيمة ليست عددا.
تحاول أن تفعل الحساب مع سلسلة غير رقمية سيؤدي إلى NaN (ليس عدد):
ومع ذلك، إذا كانت السلسلة تحتوي على قيمة رقمية، ستكون النتيجة رقما:
يمكنك استخدام وظيفة جافا سكريبت العالمي isNaN() لمعرفة ما إذا كانت القيمة رقما.
احترس من نان. إذا كنت تستخدم نان في عملية حسابية، فإن النتيجة ستكون أيضا نان:
أو نتيجة قد تكون سلسلة:
NaN هو العدد، و typeof NaN يعود عدد:
الأرقام يمكن أن تكون الأجسام
عادة أرقام جافا سكريبت والقيم البدائية خلقت من الحرفية: var x = 123
لكن الأرقام يمكن أيضا تعريف ككائنات مع الكلمة الجديدة: var y = new Number(123)
مثال
var x = 123;
var y = new Number(123);
//
typeof x returns number
//
typeof y returns object
انها محاولة لنفسك » لا إنشاء كائنات عدد. أنه يبطئ سرعة التنفيذ.
في new الكلمة تعقيد التعليمات البرمجية. هذا يمكن أن تنتج بعض نتائج غير متوقعة:
عند استخدام == المشغل المساواة وبأعداد متساوية تبدو متساوية:
مثال
var x = 500;
var y = new Number(500);
// (x == y) is true because x and y have equal values
انها محاولة لنفسك » عند استخدام مشغل المساواة ===، بأعداد متساوية ليست متساوية، لأن المشغل === يتوقع المساواة في كل نوع وقيمة.
مثال
var x = 500;
var y = new Number(500);
// (x === y) is false because x and y have different types
انها محاولة لنفسك » أو أسوأ من ذلك. لا يمكن مقارنة قطع:
مثال
var x = new Number(500);
var y = new Number(500);
// (x == y) is false because objects cannot be compared
انها محاولة لنفسك » لا يمكن مقارنة كائنات جافا سكريبت.
اختبر نفسك مع تمارين!
التمرين 1 » التمرين 2» التمرين 3 » التمرين 4»