سلام دوستان ، حالتون که خوبه؟ درمورد اعداد در جاوا اسکریپت آموزش میدم. زبان جاوا اسکریپت فقط یک نوع متغیر عددی دارد.

متغیرهای عددی می توانند از نوع عددی یا اعشاری باشند.

مثال

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‎

اعداد جاوا اسکریپت همیشه ۶۴ بیتی و با ممیز شناور (در مبنای ۱۰) هستند. برخلاف بسیاری از زبان های برنامه نویسی، جاوا اسکریپت انواع عددی از قبیل : integer (عدد صحیح)، short، long و floating-point تعریف نمی کند و این نوع اعداد در جاوا اسکریپت استفاده نمی شوند.

در جاوا اسکریپت اعداد همیشه به صورت ممیز شناور با دو رقم اعشار (double precision floating-point number) ذخیره می شوند که در حقیقت دنبال رو استاندارد بین المللی IEEE 754 می باشد.

در این نوع قالب دهی یا فرمت اعداد در ۶۴ بیت ذخیره می گردند، به گونه ای که کسر (fraction) در بیت های ۰ تا ۵۱، نما یا توان (exponent) در بیت های ۵۲ تا ۶۲ و علامت (sign) در بیت ۶۳ ذخیره می گردد.

مقدار (کسر/مانتیس یا جز کسری)

نما / توان

علامت

۵۲ bits (0 – 51)

۱۱ bits (52 – 62)

۱ bit (63)

دقت اعشار (precision)

integer یا اعداد صحیح در حداکثر ۱۵ رقم و همیشه به صورت دقیق مطرح می شوند.

مثال

نمونه یک

حداکثر تعداد اعشار، ۱۷ رقم است، اما حساب ممیز شناور همیشه ۱۰۰% دقیق نیست.

مثال

نمونه دو

به منظور حل مشکل بالا، انجام عمل ضرب و تقسیم کمک زیادی می کند.

مثال

نمونه سه

function myFunction() {
var x = (0.2 * 10 + 0.1 * 10) / 10;
document.getElementById(“demo”).innerHTML = “0.2 + 0.1 = ” + x;
}

اعداد شانزده شانزدهی (hexadecimal)

جاوا اسکریپت ثابت های عددی (اعداد ثابتی) را که با ۰x شروع می شوند به عنوان اعداد در مبنای شانزده در نظر می گیرد (تفسیر می کند).

مثال

نمونه چهار

function myFunction() {
document.getElementById(“demo”).innerHTML = “0xFF = ” + 0xFF;
}

توجه

هیچگاه یک عدد را با صفر مقدم ننویسید (مانند این مثال ۰۷(.

بعضی از ویرایش های جاوا اسکریپت یک عدد را در صورتی که با صفر مقدم نوشته شوند، به صورت octal / هشت هشتی تفسیر می کند.

به صورت پیش فرض، جاوا اسکریپت اعداد را به صورت اعشاری و در مبنای ۱۰ نمایش می دهد، اما شما می توانید با استفاده از تابع toString() اعداد را به صورت مبنای ۱۶، مبنای ۸ یا مبنای ۲ (دودئی) (به عنوان خروجی) نمایش دهید.

مثال

نمونه پنج

function myFunction() {
var myNumber = 128;
document.getElementById(“demo”).innerHTML = “128 = ” +
myNumber + ” Decimal, ” +
myNumber.toString(16) + ” Hexadecimal, ” +
myNumber.toString(8) + ” Octal, ” +
myNumber.toString(2) + ” Binary.”
}

Infinity (مقدار بی نهایت)

چنانچه عددی را که بزرگتر از بیشینه ی حد ممکن اعداد در جاوا اسکریپت است محاسبه کنید، مقدار infinity برگردانده می شود.

مثال

نمونه شش

function myFunction() {
var myNumber = 2;
var txt = “”;
while (myNumber != Infinity) {
myNumber = myNumber * myNumber;
txt = txt + myNumber + “
“;
}
document.getElementById(“demo”).innerHTML = txt;
}

در صورت تقسیم عددی بر ۰ نیز مقدار بی نهایت برگردانده می شود.

مثال

نمونه هفت

function myFunction() {
var x = 2 / 0;
var y = -2 / 0;
document.getElementById(“demo”).innerHTML = x + “
” + y;
}

infinity یک عدد است : typeOf infinity یک عدد برمی گرداند.

مثال

نمونه هشت

function myFunction() {
document.getElementById(“demo”).innerHTML = typeof Infinity;
}

“‏

NaN- عبارت رزرو شده ی Not a Number

NaN یک کلمه ی رزرو شده (reserved word) است که بیان می کند یک مقدار از نوع عدد نیست.

چنانچه سعی کنید با رشته ی غیر عددی عملیات محسابه ی انجام دهید، جاوا اسکریپت عبارت رزرو شده ی Not a Number را بر می گرداند.

نمونه نه

document.getElementById(“demo”).innerHTML = 100 / “Apple”

اما چنانچه رشته دربردارنده ی یک مقدار عددی باشد، نتیجه نیز یک عدد خواهد بود.

مثال

نمونه ده

document.getElementById(“demo”).innerHTML = 100 / “10”;

می توانید از تابع سراسری (global function) isNaN() برای کشف این مسئله که آیا مقدار یک عدد است یا خیر استفاده کنید.

مثال

نمونه یازده

var x = 100 / “Apple”;
document.getElementById(“demo”).innerHTML = isNaN(x);

اگر در محاسبات ریاضی از NaN استفاده کنید، نتیجه نیز NaN خواهد بود.

مثال

نمونه دوازده

var x = NaN;
var y = 5;
document.getElementById(“demo”).innerHTML = x + y;

نمونه سیزده

var x = NaN;
var y = “5”;
document.getElementById(“demo”).innerHTML = x + y;

NaN یک عدد است : typeOf NaN عدد بازمی گرداند.

مثال

نمونه چهارده

document.getElementById(“demo”).innerHTML = typeof NaN;

اعداد می توانند شی باشند. به طور معمول اعداد مقادیر اولیه ی هستند که از literal ها ایجاد می گردند.

var x = 123‎

اما اعداد را می توان با استفاده از کلیدواژه ی new به عنوان شی (object) تعریف کرد، بدین ترتیب

var y = new Number(123)‎

مثال

نمونه پانزده

document.getElementById(“demo”).innerHTML = typeof x + “
” + typeof y;

از ایجاد شی number خودداری کنید، زیرا که سرعت اجرا را کاهش داده و عوارض جانبی فراوانی را منجر می شوند.

عملگر == برای اعدادی بکار می رود که از لحاظ مقدار برابر باشند.

مثال

نمونه شانزده

var x = 500; // x is a number
var y = new Number(500); // y is an object
document.getElementById(“demo”).innerHTML = (x == y);

توجه داشته باشید که در صورت استفاده از عملگر === دیگر اعداد با مقدار یکسان مساوی یا برابر محسوب نمی شوند زیرا که این عملگر انتظار دارد اعداد هم از نظر نوع و هم از نظر مقدار با هم برابر باشند.

مثال

نمونه هفده

var x = 500; // x is a number
var y = new Number(500); // y is an object
document.getElementById(“demo”).innerHTML = (x === y);

بخاطر داشته باشید که مقایسه ی اشی با هم امکان پذیر نمی باشد.

مثال

نمونه هجده

var x = 500; // x is a number
var y = new Number(500); // y is an object
document.getElementById(“demo”).innerHTML = (x === y);

خواص (properties) و متدهای مربوط به اعداد در جاوا اسکریپت

مقادیر اولیه ی مثل ۳٫۱۴ یا ۲۰۱۴، نمی توانند متد یا خاصیت داشته باشند (زیرا که در اصل این ها شی نیستند که بتوانند خاصیت یا متد داشته باشند).

اما در رابطه با جاوا اسکریپت این امر صادق نیست. به این خاطر که زبان بیان شده هنگام اجرای متدها و خصوصیت ها با مقادیر اولیه به مثابه ی شی برخورد می کند. از این رو مقادیر اولیه همچنان قادر هستند در زبان جاوا اسکریپت متد و خاصیت داشته باشند.

خاصیت

شرح

MAX_VALUE

این خاصیت بزرگترین عدد (رقم) ممکن (در زبان جاوا اسکریپت) را برمی گرداند

MIN_VALUE

کوچکترین عدد ممکن در جاوا اسکریپت را برمی گرداند

NEGATIVE_INFINITY

مقدار بی نهایت منفی / negative infinity را در صورت وقوع وضعیت سرریز (overflow) نمایش می دهد

NaN

مقدار “Not-a-Number” را در نتیجه نمایش می دهد

POSITIVE_INFINITY

مقدار بی نهایت / infinity را در صورت وقوع سر ریز (overflow) نمایش می دهد

مثال

نمونه نوزده

document.getElementById(“demo”).innerHTML = Number.MAX_VALUE;

خاصیت های مربوط به اعداد در جاوا اسکریپت متعلق به دبرگیرنده یا wrapper شی number هستند که خود Number نامیده می شوند. دسترسی به خاصیت های نام برده تنها از این طریق ممکن می باشد.

Number.MAX_VALUE‎

استفاده از myNumber.MAX_VALUE در جایی که myNumber یک متغیر، عبارت یا مقدار است، باعث برگردانده شدن undefined می شود.

مثال

نمونه بیست

var x = 6;
document.getElementById(“demo”).innerHTML = x.MAX_VALUE;