أرقام جافا سكريبت
جافا سكريبت لديها نوع واحد فقط من الأرقام. يمكن كتابة الأرقام مع الكسور العشرية أو بدونها.
مثال
let x = 3.14; // A number with decimals
let y = 3; // A number without decimals
يمكن كتابة الأعداد الكبيرة جدًا أو الصغيرة جدًا باستخدام التدوين العلمي (الأس):
مثال
let x = 123e5; // 12300000
let y = 123e-5; // 0.00123
أرقام JavaScript هي دومًا نقطة عائمة 64 بت
على عكس العديد من لغات البرمجة الأخرى ، لا تحدد JavaScript أنواعًا مختلفة من الأرقام ، مثل الأعداد الصحيحة والقصيرة والطويلة والعائمة وما إلى ذلك.
يتم تخزين أرقام JavaScript دائمًا كأرقام فاصلة عائمة مزدوجة الدقة ، وفقًا لمعيار IEEE 754 الدولي.
يخزن هذا التنسيق الأرقام في 64 بت ، حيث يتم تخزين الرقم (الكسر) في البتات من 0 إلى 51 ، والأس في البتات من 52 إلى 62 ، وتسجيل الدخول بت 63:
القيمة (ويعرف أيضًا باسم الكسر / الجزء العشري) | الأس | لافتة |
---|---|---|
52 بت (0-51) | 11 بت (52-62) | 1 بت (63) |
دقة عدد صحيح
الأعداد الصحيحة (الأرقام بدون نقطة أو رمز الأس) دقيقة حتى 15 رقمًا.
مثال
let x = 999999999999999; // x will be 999999999999999
let y = 9999999999999999; // y will be 10000000000000000
الحد الأقصى لعدد الكسور العشرية هو 17.
الدقة العائمة
حساب الفاصلة العائمة ليس دقيقًا دائمًا بنسبة 100٪:
let x = 0.2 + 0.1;
لحل المشكلة أعلاه ، من المفيد الضرب والقسمة:
let x = (0.2 * 10 + 0.1 * 10) / 10;
جمع الأرقام والسلاسل
تحذير !!
يستخدم JavaScript عامل التشغيل + للإضافة والتسلسل.
تمت إضافة الأرقام. السلاسل متسلسلة.
إذا أضفت رقمين ، فستكون النتيجة رقمًا:
مثال
let x = 10;
let y = 20;
let z = x + y;
إذا أضفت سلسلتين ، فستكون النتيجة سلسلة نصية:
مثال
let x = "10";
let y = "20";
let z = x + y;
إذا أضفت رقمًا وسلسلة ، فستكون النتيجة سلسلة سلسلة:
مثال
let x = 10;
let y = "20";
let z = x + y;
إذا أضفت سلسلة ورقمًا ، فستكون النتيجة سلسلة سلسلة:
مثال
let x = "10";
let y = 20;
let z = x + y;
الخطأ الشائع هو توقع أن تكون هذه النتيجة 30:
مثال
let x = 10;
let y = 20;
let z = "The result is: " + x + y;
الخطأ الشائع هو توقع أن تكون هذه النتيجة 102030:
مثال
let x = 10;
let y = 20;
let z = "30";
let result = x + y + z;
مترجم جافا سكريبت يعمل من اليسار إلى اليمين.
يضاف أول 10 + 20 لأن س وص عددان.
ثم يتم ربط 30 + "30" لأن z عبارة عن سلسلة.
سلاسل رقمية
يمكن أن تحتوي سلاسل JavaScript على محتوى رقمي:
let x = 100; // x is a number
let y = "100"; // y is a
string
سيحاول JavaScript تحويل السلاسل إلى أرقام في جميع العمليات الرقمية:
هذا سيفي بالغرض:
let x = "100";
let y = "10";
let z = x / y;
سيعمل هذا أيضًا:
let x = "100";
let y = "10";
let z = x * y;
وهذا سيعمل:
let x = "100";
let y = "10";
let z = x - y;
لكن هذا لن ينجح:
let x = "100";
let y = "10";
let z = x + y;
في المثال الأخير ، تستخدم JavaScript عامل التشغيل + لسلسلة السلاسل.
NaN - ليس رقمًا
NaN
هي كلمة محجوزة في JavaScript تشير إلى أن الرقم ليس رقمًا قانونيًا.
ستؤدي محاولة إجراء العمليات الحسابية باستخدام سلسلة غير رقمية إلى NaN
(ليس رقمًا):
مثال
let x = 100 / "Apple";
ومع ذلك ، إذا كانت السلسلة تحتوي على قيمة عددية ، فستكون النتيجة رقمًا:
مثال
let x = 100 / "10";
يمكنك استخدام دالة JavaScript العامة isNaN()
لمعرفة ما إذا كانت القيمة ليست رقمًا:
مثال
let x = 100 / "Apple";
isNaN(x);
احترس من NaN
. إذا كنت تستخدم NaN
في عملية حسابية ، فستكون النتيجة أيضًا NaN
:
مثال
let x = NaN;
let y = 5;
let z = x + y;
أو قد تكون النتيجة سلسلة مثل NaN5:
مثال
let x = NaN;
let y = "5";
let z = x + y;
NaN
هو رقم: typeof NaN
إرجاع number
:
مثال
typeof NaN;
ما لا نهاية
Infinity
(أو -Infinity
) هي القيمة التي سترجعها JavaScript إذا قمت بحساب رقم خارج أكبر رقم ممكن.
مثال
let myNumber = 2;
// Execute until Infinity
while (myNumber != Infinity) {
myNumber = myNumber * myNumber;
}
ينتج عن القسمة على 0 (صفر) أيضًا Infinity
:
مثال
let x = 2 / 0;
let y = -2 / 0;
Infinity
هو رقم: typeof Infinity
إرجاع number
.
مثال
typeof Infinity;
السداسي عشري
يفسر JavaScript الثوابت الرقمية على أنها سداسية عشرية إذا كانت مسبوقة بـ 0 x.
مثال
let x = 0xFF;
لا تكتب أبدًا أي رقم بصفر بادئ (مثل 07).
تفسر بعض إصدارات JavaScript الأرقام على أنها ثماني إذا كانت مكتوبة بصفر بادئ.
بشكل افتراضي ، يعرض JavaScript الأرقام كأساس 10 عشرية.
لكن يمكنك استخدام toString()
الطريقة لإخراج الأرقام من الأساس 2
إلى الأساس 36 .
النظام السداسي عشري هو الأساس 16 . الرقم العشري هو الأساس 10 . أوكتال هو الأساس 8 . النظام الثنائي هو الأساس 2 .
مثال
let myNumber = 32;
myNumber.toString(10);
myNumber.toString(32);
myNumber.toString(16);
myNumber.toString(8);
myNumber.toString(2);
أرقام جافا سكريبت ككائنات
عادةً ما تكون أرقام JavaScript عبارة عن قيم أولية تم إنشاؤها من القيم الحرفية:
let x = 123;
لكن يمكن أيضًا تعريف الأرقام على أنها كائنات تحتوي على الكلمة الأساسية new
:
let y = new Number(123);
مثال
let x = 123;
let y = new Number(123);
لا تقم بإنشاء كائنات رقمية.
الكلمة الأساسية تعقد new
الكود وتبطئ سرعة التنفيذ.
يمكن أن تنتج كائنات الأرقام نتائج غير متوقعة:
عند استخدام ==
عامل التشغيل ، x و y متساويان :
let x = 500;
let y = new Number(500);
عند استخدام عامل التشغيل ، لا تتساوى===
x و y .
let x = 500;
let y = new Number(500);
لاحظ الفرق بين (x==y)
و (x===y)
.
(x == y)
صحيحة أو خاطئة؟
let x = new Number(500);
let y = new Number(500);
(x === y)
صحيحة أو خاطئة؟
let x = new Number(500);
let y = new Number(500);
Comparing two JavaScript objects always returns false.
Complete JavaScript Number Reference
For a complete Number reference, visit our:
Complete JavaScript Number Reference.
The reference contains descriptions and examples of all Number properties and methods.