آموزش جاوا اسکریپت

اعداد در جاوا اسکریپت

آموزش جاوا اسکریپت از مبتدی تا حرفه ای

در این بخش از آموزش جاوا اسکریپت در مورد اعداد در جاوا اسکریپت صحبت می کنیم. جاوا اسکریپت تنها یک نوع عدد دارد و آنها را می توان با یا بدون رقم اعشار نوشت.


مثال

خودتان آزمایش کنید

اعداد خیلی بزرگ و یا فوق العاده کوچک می توانند با نماد علمی نوشته شوند:

مثال

خودتان آزمایش کنید


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

بر خلاف بسیاری از زبان های برنامه نویسی دیگر، جاوا اسکریپت انواع مختلفی از اعداد مانند اعداد صحیح (integers)، کوتاه (short)، بلند (long)، اعشار(floating-point) و غیره را تعریف نمی کند.

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

این فرمت اعداد را در ۶۴ بیت ذخیره می کند، بطوریکه که عدد اعشاری در بیت های ۰ تا ۵۱ ذخیره می شود، توان در بیت های ۵۲ تا ۶۲ و علامت در بیت ۶۳:

عدد اعشاریتوانعلامت
۵۲ بیت (۰ – ۵۱) ۱۱ بیت(۵۲ – ۶۲)۱ بیت(۶۳)

دقت

عدد صحیح (عدد بدون علامت دوره یا نماد) تا ۱۵ رقم دقت دارد

مثال

خودتان آزمایش کنید

حداکثر تعداد رقم دهدهی ۱۷ است، اما محاسبه اعداد اعشار همیشه ۱۰۰٪ دقیق نیست:

مثال

خودتان آزمایش کنید

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

مثال

خودتان آزمایش کنید


 

جمع کردن اعداد و رشته ها

هشدار !!

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

اعداد جمع می شوند. رشته ها به هم می پیوندند

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

مثال

خودتان آزمایش کنید

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

مثال

خودتان آزمایش کنید

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

مثال

خودتان آزمایش کنید

اگر یک رشته و یک عدد را جمع کنید، باز هم نتیجه یک پیوند رشته خواهد بود:

مثال

خودتان آزمایش کنید

اشتباه رایج انتظار نتیجه ۳۰ از مثال زیر است:

مثال

خودتان آزمایش کنید

اشتباه رایج دیگر این است که انتظار می رود نتیجه مثال زیر ۱۰۲۰۳۰ باشد:

مثال

خودتان آزمایش کنید

کامپایلر جاوا اسکریپت از چپ به راست کار می کند.

اول ۱۰ + ۲۰ شده است زیرا x و y هر دو عدد هستند.

سپس ۳۰ + “۳۰” به هم پیوند می شوند زیرا z یک رشته است.


رشته های عددی

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

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

بعبارتی مثال زیر، کار خواهد کرد:

خودتان آزمایش کنید

و همچنین مثال بعدی نیز کار خواهد کرد:

خودتان آزمایش کنید

این مثال نیز کار خواهد کرد:

خودتان آزمایش کنید

اما این مثال کار نخواهد کرد:

خودتان آزمایش کنید

در مثال آخر جاوا اسکریپت از اپراتور + برای پیوند دادن رشته ها استفاده می کند.


NaN – Not a Number (عدد نیست)

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

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

مثال

خودتان آزمایش کنید

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

مثال

خودتان آزمایش کنید

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

مثال

خودتان آزمایش کنید

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

مثال

خودتان آزمایش کنید

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

مثال

خودتان آزمایش کنید

NaN یک عدد است: نتیجه ی typeof NaN بصورت number خواهد بود:

مثال

خودتان آزمایش کنید


بی نهایت

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

مثال

خودتان آزمایش کنید

تقسیم بر صفر هم مقدار Infinity را تولید میکند:

مثال

خودتان آزمایش کنید

Infinity یک عدد است: نتیجه ی typeof Infinity بصورتnumberخواهد بود.

مثال

خودتان آزمایش کنید


هگزا دسیمال – Hexadecimal

جاوا اسکریپت، ثابت های عددی را به صورت هگزادسیمال تفسیر می کند اگر قبل از آنها ۰x بیاید.

مثال

خودتان آزمایش کنید

هیچگاه عددی را با پیشوند صفر ۰ ننویسید (مثل ۰۷).
برخی از نسخه های جاوا اسکریپت، اعداد را به صورت اکتان در نظر می گیرند اگر با صفر پیشین نوشته شوند.

به طور پیش فرض، جاوا اسکریپت اعداد را به صورت مبنای ۱۰ نشان می دهد.

اما شما می توانید از تایع toString() برای خروجی گرفتن اعداد بصورت مبنای ۲ تا مبنای ۳۶ استفاده کنید.

هگزادسیمال مبنای ۱۶ است .دسیمال مبنای ۱۰ است .اکتال پایه ۸ است .باینری پایه ۲ است.

مثال

خودتان آزمایش کنید


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

به طور معمول اعداد جاوا اسکریپت ارزشهای ابتدایی ایجاد شده از لیترال ها (مقادیر دقیق و ثابت) هستند:

var x = 123;

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

var y = new Number(123);

مثال

خودتان آزمایش کنید

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

وقتی از عملگر == استفاده میکنید، اعداد یکسان، برابر هستند:

مثال

خودتان آزمایش کنید

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

مثال

خودتان آزمایش کنید

یا حتی بدتر اینکه اشیاء قابل مقایسه نیستند

مثال

خودتان آزمایش کنید

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


منبع : W3Schools.com


دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *