آموزش ویژگی های ECMAScript 6 (جلسه 24) : تغییرات و امکانات جدید شئ Number



visibility  
mode_comment   ۰

همونطور که اطلاع دارید در جلسه قبل در مورد Map و WeakMap براتون توضیحاتی رو قرار دادیم و شما رو بصورت کامل با اونا آشنا کردیم. در این جلسه میخوایم در مورد تغییرات و امکانات جدیدی که در ES6 برای شئ Number معرفی شده اند، توضیحاتی رو قرار بدیم. برای این آموزش از این لینک به عنوان منبع استفاده میکنیم.

تغییرات و امکانات جدید Number

همونطور که اطلاع دارید شئ Number به شما اجازه میده که با اعداد کار کرده و اونا رو مدیریت کنید. در زیر تغییرات و امکانات جدید رو با هم بررسی میکنیم.

تغییرات parseInt

همونطور که میدونین در ES5 یک تابع بنام parseInt وجود داشت که با استفاده از اون میتونستید یک رشته رو به یک عدد در مبنای مشخص تبدیل کنید. در ES5 این مورد بصورت سراسری و Global بود ولی در ES6 اون رو به عنوان عضوی از شئ Number در آوردن و باید بصورت Number.parseInt از اون استفاده کنید. کد زیر رو در نظر بگیرید:

میبینید که این دو مورد رو با یکدیگر مقایسه کردیم و پاسخ در خروجی true خواهد بود. پس از این به بعد از Number.parseInt استفاده کنید. نحوه کارکرد اون فرقی با گذشته نکرده است.

تغییرات parseFloat

همانند تابع parseInt، تابع دیگری بنام parseFloat وجود داره که با استفاده از اون میتونین یک ورودی رو به اون پاس بدین و این تابع اون رو تجزیه و تحلیل میکنه و عدد اعشاری رو برمیگردونه. کد زیر رو ببینید:

پس از این به بعد از Number.parseFloat استفاده کنید. نحوه کارکرد اون فرقی با گذشته نکرده است.

تغییرات isNaN

همونطور که میدونین NaN مخفف Not a Number هست و با استفاده از تابع global یا سراسری isNaN در ES5 میتونستید بررسی کنید که یک مقدار NaN هست یا خیر. اما این کد مشکلی رو داره که با هم بررسی میکنیم. کد زیر رو در نظر بگیرید:

more  بیشتر بخوانید : ترفندهای پیشرفته jQuery (قسمت 15)

همونطور که میبینید رشته NaN رو به تابع isNaN پاس دادیم و مقدار true برگشت داده شده است. در صورتی که این مقدار NaN نیست و یک رشته است. در ES6 متد isNaN به شئ Number اضافه شده و مشکلات این چنینی رو برطرف کرده. کد زیر رو در نظر بگیرید:

میبینید که در اینجا جواب درست نمایش داده میشه. در اینجا دیگه رشته NaN بصورت ضمنی به NaN تبدیل نمیشه و بصورت رشته باقی میمونه و به همین دلیل false نمایش داده میشه. مثالهای زیر رو نیز در نظر بگیرید:

تغییرات isFinite

همونطور که میدونین با استفاده از تابع global یا سراسری isFinite در ES5 میتونستید بررسی کنید که یک مقدار محدود یا متناهی هست یا خیر. اما این کد مشکلی رو داره که با هم بررسی میکنیم. کد زیر رو در نظر بگیرید:

همونطور که میبینید رشته 400 رو به تابع isFinite پاس دادیم و مقدار true برگشت داده شده است. در متد سراسری isFinite که در ES5 مورد استفاده قرار میگرفت، در چنین شرایطی رشته 400 به صورت ضمنی به عدد 400 تبدیل میشد و به همین دلیل چون عدد 400 یک عدد محدود یا متنهای است، true برگشت داده میشد. در ES6 متد isFinite به شئ Number اضافه شده و مشکلات این چنینی رو برطرف کرده. کد زیر رو در نظر بگیرید:

میبینید که در اینجا جواب درست نمایش داده میشه. در اینجا دیگه رشته 400 بصورت ضمنی به عدد 400 تبدیل نمیشه و بصورت رشته باقی میمونه و به همین دلیل false نمایش داده میشه. مثالهای زیر رو در نظر بگیرید:

متد جدید isInteger

این متد در ES6 معرفی شده است و با استفاده از اون میتونین صحیح بودن یک عدد رو بررسی کنید. اگر عدد وارد شده صحیح باشه true و در غیر اینصورت false برگشت داده میشه. مثالهای زیر رو در نظر بگیرید:

میبینید که اون مواردی که عدد صحیح وارد نشده، مقدار false رو نمایش میدهند.

متد جدید isSafeInteger

این متد در ES6 معرفی شده است و با استفاده از اون میتونین بررسی کنید که عدد صحیح وارد شده در بازه مجاز برای اعداد صحیح قرار دارد یا خیر. اگر عدد وارد شده صحیح باشه true و در غیر اینصورت false برگشت داده میشه. بازه مربوط به safe Integer از عدد -(253 - 1) تا 253 - 1 می باشد. مثالهای زیر رو در نظر بگیرید:

میبینید که اون مواردی که عدد صحیح وارد نشده، مقدار false رو نمایش میدهند. همونطور که دیدید 2 به توان 53 یک عدد صحیح مجاز نیست ولی اگر یکی از اون کم کنیم، در بازه مورد نظر قرار میگیره و مقدار true برگشت داده میشه.

ثابتهای اضافه شده به شئ Number

تعدادی ثابت یا constant جدید در ES6 به شئ Number اضافه شدن که میتونین از اونا استفاده کنید.

  • Number.EPSILON : نشان دهنده اختلاف بین عدد 1 و کوچکترین عدد اعشاری بزرگتر از 1 می باشد. مقدار تقریبی اون 2-52 است.
  • Number.MAX_SAFE_INTEGER : نشان دهنده بزرگترین مقدار عدد صحیح مجاز می باشد و مقدار اون 253 - 1 است.
  • Number.MIN_SAFE_INTEGER : نشان دهنده کوچکترین مقدار عدد صحیح مجاز می باشد و مقدار اون -(253 - 1) می باشد.
  • Number.MAX_VALUE : نشان دهنده بزرگترین مقدار عددی موجود در Javascript می باشد و مقدار اون تقریبا 1.79E+308 می باشد. هر عددی که بزرگتر از این عدد باشد، بینهایت یا Infinity شناخته میشه.
  • Number.MIN_VALUE : نشان دهنده کوچکترین مقدار عددی موجود در Javascript می باشد و مقدار اون تقریبا 5e-324 می باشد. هر عددی که کوچکتر از این عدد باشد، به 0 تبدیل میشن.
  • Number.NEGATIVE_INFINITY : نشان دهنده بینهایت منفی یا -Infinity می باشد
  • Number.POSITIVE_INFINITY : نشان دهنده بینهایت مثبت یا Infinity می باشد

به همین راحتی.

موفق و پیروز باشید.

یا علی

comment دیدگاه کاربران
ارسال نظرات

کاربر گرامی، امکان ارسال نظر و پشتیبانی برای دوره های مجازی فقط برای دانشجویان این دوره امکان پذیر می باشد.