٪۴۰ تخفیف تابستانه شروع شد! بزرگترین حراج سال ما

به ما بپیوندید

شماره های جاوا اسکریپت

جاوا اسکریپت فقط یک نوع شماره دارد. اعداد را می توان با یا بدون اعشار نوشت. مثال let x = 3.14; // A number with decimals let y = 3; // A number without decimals اعداد خیلی زیاد یا خیلی کم…

محمد یوسفی

18 جولای 2021

جاوا اسکریپت فقط یک نوع شماره دارد. اعداد را می توان با یا بدون اعشار نوشت.


مثال

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

شماره های جاوا اسکریپت همیشه نقطه شناور 64 بیتی هستند

بر خلاف بسیاری از زبانهای برنامه نویسی دیگر ، JavaScript انواع مختلفی از اعداد مانند عدد صحیح ، کوتاه ، بلند ، شناور و غیره را تعریف نمی کند.

اعداد جاوا اسکریپت ، طبق استاندارد بین المللی IEEE 754 ، همیشه به عنوان اعداد دقیق شناور با دقت دو برابر ذخیره می شوند.

این قالب اعداد را در 64 بیت ذخیره می کند ، جایی که عدد (کسر) در بیت های 0 تا 51 ، نمایانگر در بیت های 52 تا 62 و علامت در بیت 63 ذخیره می شود:


دقت، درستی

اعداد صحیح (اعداد بدون علامت دوره یا نماد) تا 15 رقم دقیق هستند.

مثال

let x = 999999999999999;   // x will be 999999999999999
let y = 9999999999999999;  // y will be 10000000000000000

حداکثر تعداد اعشاری 17 است ، اما حساب نقطه شناور همیشه 100٪ دقیق نیست:

مثال

let x = 0.2 + 0.1;         // x will be 0.30000000000000004

برای حل مسئله فوق ، به ضرب و تقسیم کمک می کند:

مثال

let x = (0.2 * 10 + 0.1 * 10) / 10;       // x will be 0.3

اضافه کردن اعداد و رشته ها

هشدار !!

جاوا اسکریپت از عملگر + برای جمع و الحاق استفاده می کند.

اعداد اضافه می شوند. رشته ها بهم پیوسته اند.

اگر دو عدد اضافه کنید ، نتیجه یک عدد خواهد بود:

مثال

let x = 10;
let y = 20;
let z = x + y;           // z will be 30 (a number)

اگر دو رشته اضافه کنید ، نتیجه یک اتصال رشته خواهد بود:

مثال

let x = "10";
let y = "20";
let z = x + y;           // z will be 1020 (a string)

اگر یک عدد و یک رشته اضافه کنید ، نتیجه یک اتصال رشته خواهد بود:

مثال

let x = 10;
let y = "20";
let z = x + y;           // z will be 1020 (a string)

اگر یک رشته و یک عدد اضافه کنید ، نتیجه یک اتصال رشته خواهد بود:

مثال

let x = "10";
let y = 20;
let z = x + y;           // z will be 1020 (a string)

یک اشتباه رایج این است که انتظار داریم این نتیجه 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 اضافه می شود زیرا x و y هر دو عدد هستند.

سپس 30 + “30” به هم متصل می شود زیرا z یک رشته است.


رشته های عددی

رشته های جاوا اسکریپت می توانند محتوای عددی داشته باشند:

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;       // z will be 10

این نیز کار خواهد کرد:

let x = "100";
let y = "10";
let z = x * y;       // z will be 1000

و این کار می کند:

let x = "100";
let y = "10";
let z = x - y;       // z will be 90

اما این کار نمی کند:

let x = "100";
let y = "10";
let z = x + y;       // z will not be 110 (It will be 10010)

در آخرین مثال JavaScript از عملگر + برای اتصال رشته ها استفاده می کند.


NaN – یک عدد نیست

NaN یک کلمه رزرو شده در JavaScript است که نشان می دهد یک عدد یک شماره قانونی نیست.

تلاش برای انجام حساب با یک رشته غیر عددی منجر به NaN(Not a Number) می شود:

مثال

let x = 100 / "Apple";  // x will be NaN (Not a Number)

با این حال ، اگر رشته حاوی مقدار عددی باشد ، نتیجه یک عدد خواهد بود:

مثال

let x = 100 / "10";     // x will be 10

می توانید از تابع JavaScript جهانی استفاده isNaN()کنید تا بفهمید یک مقدار عدد است یا خیر

مثال

let x = 100 / "Apple";
isNaN(x);               // returns true because x is Not a Number

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

مثال

let x = NaN;
let y = 5;
let z = x + y;         // z will be NaN

یا ممکن است نتیجه یک اتصال باشد:

مثال

let x = NaN;
let y = "5";
let z = x + y;         // z will be NaN5

NaNیک عدد است: typeof NaNبرمی گرداند number:

مثال

typeof NaN;            // returns "number"

بی نهایت

Infinity(یا -Infinity) مقداری است که جاوا اسکریپت در صورت محاسبه عددی خارج از بزرگترین عدد ممکن ، باز می گردد.

مثال

let myNumber = 2;
while (myNumber != Infinity) {   // Execute until Infinity
  myNumber = myNumber * myNumber;
}

تقسیم بر 0 (صفر) نیز تولید می کند Infinity:

مثال

let x =  2 / 0;       // x will be Infinity
let y = -2 / 0;       // y will be -Infinity

Infinityیک عدد است: typeof Infinityبرمی گرداند number.

مثال

typeof Infinity;     // returns "number"

هگزادسیمال

جاوا اسکریپت ثابت های عددی را اگر قبل از آنها 0x باشد تفسیر می کند به عنوان شانزده هزار

مثال

let x = 0xFF;        // x will be 255

هرگز عددی را با صفر اول ننویسید (مانند 07).
بعضی از نسخه های جاوا اسکریپت اگر اعداد را با صفر جلو نوشته شوند ، به صورت هشتی تفسیر می کنند.

به طور پیش فرض ، JavaScript اعداد را به عنوان پایه 10 اعشاری نمایش می دهد .

اما می توانید از toString()روش برای خروج اعداد از پایه 2 به مبنای 36 استفاده کنید .

هگزادسیمال پایه 16 است . دهدهی پایه 10 است . Octal پایه 8 است . باینری پایه 2 است .

مثال

let myNumber = 32;
myNumber.toString(10);  // returns 32
myNumber.toString(32);  // returns 10
myNumber.toString(16);  // returns 20
myNumber.toString(8);   // returns 40
myNumber.toString(2);   // returns 100000

اعداد می توانند شی باشند

به طور معمول اعداد جاوا اسکریپت مقادیر ابتدایی هستند که از حروف بزرگ ایجاد می شوند:

let x = 123;

اما اعداد را می توان به عنوان اشیا with با کلمه کلیدی نیز تعریف کرد new:

let y = new Number(123);

مثال

let x = 123;
let y = new Number(123);

// typeof x returns number
// typeof y returns object

تعداد اشیا را ایجاد نکنید. سرعت اجرا را کاهش می دهد. کلمه کلیدی پیچیده کد. این می تواند نتایج غیر منتظره ای ایجاد کند:
new

هنگام استفاده از ==اپراتور ، تعداد برابر برابر هستند:

مثال

let x = 500;             
let y = new Number(500);

// (x == y) is true because x and y have equal values

هنگام استفاده از ===عملگر ، اعداد برابر برابر نیستند ، زیرا ===اپراتور انتظار برابری را از نظر نوع و مقدار دارد.

مثال

let x = 500;             
let y = new Number(500);

// (x === y) is false because x and y have different types

یا حتی بدتر. اشیا قابل مقایسه نیستند:

مثال

let x = new Number(500);             
let y = new Number(500);

// (x == y) is false because objects cannot be compared

به تفاوت بین (x==y)و توجه کنید (x===y).
مقایسه دو شی JavaScript همیشه برمی گردد false.

منبع

مطالب مرتبط

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها