اعداد در جاوا اسکریپت (Numbers) - قسمت ۷

https://www.aparat.com/v/YbmcE آموزش رایگان جاوا اسکریپتاعداد یا Numbers یکی از انواع داده ای بود که در جلسه ششم از دوره مقدماتی جاوا اسکریپت راجع به آن صحبت کردیم. در برنامه نویسی و به خصوص زبان برنامه نویسی جاوا اسکریپت اعداد نقش مهمی دارند و علاوه بر کاربردی که در ریاضیات دارند، متد های زیادی برای کار با اعداد در جاوا اسکریپت وجود دارد.اعداد در جاوا اسکریپت (NUMBERS)اعداد در جاوا اسکریپت فقط یک نوع هستش و همان طور که در جلسه انواع داده گفتیم اعداد به دو شکل Integer و Float در متغیر قرار میگیرد. به اعداد صحیح integer و به اعداد اعشار float می گوین تعریف کرد. البته اعداد خیلی بزرگ یا خیلی کوچک را با نماد علمی (e) هم نشان میدهیم. اعداد در جاوا اسکریپت همیشه ۶۴بیت از حافظه را اشغال میکنند. اعداد تا ۱۵ رقم صحیح و ۱۷ رقم اعشار قابل تعریف و نمایش در جاوا اسکریپت هستند.قسمت قبل: انواع داده در جاوا اسکریپتاعداد در جاوا اسکریپتجمع عدد و رشته چی میشه؟یکی از عملگرهایی که در جلسه پنجم یاد گرفتیم، عملگر (+) (Plus) بود که کار جمع اعداد را انجام میداد. اما زمانی که یک عدد با یک رشته را جمع کنیم چه میشود؟؟؟ بیاید تست کنیم.var a = 10; // Number var b = &quotMEGAJS" // String var z = a + b; // typeof Z is String // output: &quot10MEGAJS&quotبله! همونطور که دیدید ما تونستیم یک عدد را با یک کلمه جمع کنیم!!! و خروجی به این صورته که عدد و رشته را به صورت یک رشته کنار هم قرار میدهد.رشته های عددی در جاوا اسکریپترشته ها (Strings) در جاوا اسکریپت میتواند شامل اعداد باشد و به رشته هایی که داخل آن فقط عدد باشد، رشته عددی میگویند. به مثال توجه کنید:var x = 125; // Number var x = &quot125" // Stringجلسه بعد: رشته ها در جاوا اسکریپتNAN یا Not a Number چیست؟NaN یکی از کلمات رزرو شده جاوا اسکریپت است و زمانی که شما یک عملیات ریاضی مثل ضرب و تقسیم (به جز جمع) بین دو متغیر که یکی عدد است اما دیگری عدد نیست انجام دهید و از متغیر نهایی typeof بگیرید با عبارت NaN روبه رو میشوید.Var x = 100; // Number var y = &quotMegajs" // String var z = x / y; // NaN (Not a Number)نکته: اگر رشته مورد نظر از نوع رشته عددی باشد، همه چیز درست کار میکند.Var x = 200; // Number var y = &quot5" // String var z = x / y; // Number // output: 40حالت بی نهایت در جاوا اسکریپتبی نهایت یا infinity زمانی رخ میدهد که یک عمل مانند تقسیم عددی بر صفر صورت بگیره یا جواب نهایی خیلی خیلی بزرگ باشه. البته شما میتونید که از خود کلمه infinity در جاوا اسکریپت استفاده کنید، مثبت بی نهایت (infinity) و منفی بی نهایت (infinity-)مثلا در پیاده سازی عبارات شرطی بسیار کاربرد دارد.var x = 2 / 0; // x will be Infinity var y = -2 / 0; // y will be Infinityمتدهای اعداد در جاوا اسکریپت (NUMBERS METHODS)متدهای عددی در جاوا اسکریپت به ما کمک میکنند تا کارایی بیشتر و بهتری با اعداد داشته باشیم. با استفاده از متد اعداد در جاوا اسکریپت شما میتونید حتی اعداد ساده با مقادیر ابتدایی مثل: x=2019 را به Object تبدیل کنیدو از خواص و متدهای مختلف استفاده کنید تا به هدف مورد نظر برسید.متد تبدیل عدد به رشته در جاوا اسکریپتمتد ()toStringبا متد ()toString همین طور که از اسمش معلومه اعداد را به رشته تبدیل میکنه. این متد برای تمام اعداد کار میکنه.var x = 2019; // Number output: 2019 x.toString(); // String output: &quot2019&quot (2019).toString() // String output: &quot2019&quot (2019+1).toString() // String output: &quot2020&quotمتد اعداد اعشاری در جاوا اسکریپتمتد ()toFixedمتد ()toFixed محدوده اعداد بعد از اعشار رو نشون میده. در واقع عددی که بین دو پرانتز بذاریم تعیین میکنه که تا چند رقم بعد اعشار اعداد را برای ما برگردونه (returns)var x = 2.951357; x.toFixed(0); // returns 3 x.toFixed(2); // returns 2.95 x.toFixed(4); // returns 3.9513 x.toFixed(8); // returns 3.95135700از اعشار دو رقم برای قیمت محصول دلاری معمولا استفاده میشودمتد محدود کردن ارقام یک عدد در جاوا اسکریپتمتد ()toPrecisionمتد ()toPrecision محدوده کلی یک عدد را مشخص میکنه. تفاوتش با متد ()toFixed اینه که در متد ()toFixed تعداد رقم بعد از اعشار تعیین میشه اما در متد ()toPrecision تعداد کل ارقام یه عدد مشخص میشه.var x = 2.951357; x.toPrecision(); // returns 2.951357 x.toPrecision(1); // returns 3 x.toPrecision(4); // returns 2.951 x.toPrecision(6); // returns 2.95135متدهای تبدیل رشته به عددبرای تبدیل متغیرها به عدد در javascript سه متد داریم.متد ()Numberمتد ()Number برای تبدیل داده داخل پرانتز به عدد استفاده میشه.Number(true); // returns 1 Number(false); // returns 0 Number(&quot2019&quot); // returns 2019 Number(&quot 2019&quot); // returns 2019 Number(&quot2019 &quot); // returns 2019 Number(&quot 2019 &quot); // returns 2019 Number(&quot20.19&quot); // returns 20.19 Number(&quot20,19&quot); // returns NaN Number(&quot20 19&quot); // returns NaN Number(&quotMegajs&quot); // returns NaNاگر هنگام تبدیل متغیرها به عدد اگه مشکلی وجود داشته باشه (NaN (Not a Number برگشت داده میشهاگر اعداد با فاصله یا همون (Space) باشن هیچی برای ما برگشت داده نمیشه. اما اگر به عدد اول نیاز داشته باشیم باید از متد ()parseInt و ()parseّFloat استفاده کنیم.استفاده از متد ()Number برای تبدیل تاریخمیشه از متد ()Number برای تبدیل تاریخ هم استفاده کرد. هر تاریخی که داخل پرانتز قرار بگیره به صورت میلی ثانیه از تاریخ ۱-۱-۱۹۷۰ در نظر گرفته می شود که خیلی از جاها برای محاسبه کاربرد داره. مثال:Number(new Date(&quot2017-09-30&quot)); // returns 1506729600000متد ()parseIntتفاوت متد ()parsInt با ()Number در اینه که متغیر میتونه شامل فاصله (Space) باشه. و اگر عدد اعشاری باشه، فقط قسمت صحیح عدد را برامون بر میگردونه.parseInt(&quot2019&quot); // returns 2019 parseInt(&quot20.19&quot); // returns 20 parseInt(&quot20 19 18&quot); // returns 20 parseInt(&quot20 years&quot); // returns 20 parseInt(&quotyears 20&quot); // returns NaNاگر چند عدد با فاصله باشن فقط عدد اول را برای ما بر میگردونهمتد ()parseFloatمتد ()parseInt دقیقا مثل متد ()parseInt عمل میکنه؛ با این تفاوت که اگه عدد اعشاری باشه، قسمت اعشاری هم برای ما بر میگردونه.parseInt(&quot2019&quot); // returns 2019 parseInt(&quot20.19&quot); // returns 20.19 parseInt(&quot20 19 18&quot); // returns 20 parseInt(&quot20 years&quot); // returns 20 parseInt(&quotyears 20&quot); // returns NaN