نگاهی گذرا به Literal های Octal و Binary در ES6

خلاصه مقاله: در این آموزش چگونگی نمایش دادن Literal های Binary (دو دویی) و Octal (هشت هشتی) در ES6 را می آموزید.
ES5 فقط literalهای عددی در مبنای هشت (با پیشوند صفر)، اعشاری(بدون پیشوند) و مبنای شانزده(0x) را تعیین کرده بود. ES6 برای literal های binary هم پشتیبانی اضافه کرده و روش نمایش literal در مبنای هشت را تغییر داده است.

literalهای Octal (هشت هشتی)

در ES5، برای نمایش یک literal در مبنای هشت، از پیشوند صفر به همراه دنباله ای از ارقام درمبنای هشت (از صفر تا هفت) استفاده می کنید. مثال زیر را مشاهده کنید:

var a = 051;
console.log(a); // 41

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

var b = 058; // invalid octal
console.log(b); // 58

در این مثال، چون ۸ یک رقم نامعتبر برای نمایش عدد octal است، جاوا اسکریپت پیشوند صفر را رد کرده و با همه اعداد به عنوان یک اعشار با مقدار ۵۸ رفتار می کند.
به این نکته توجه داشته باشید که می توانید از literalهای octal در حالت non-strict استفاده کنید. اگر از آنها در حالت strict استفاده کنید، با خطای جاوااسکریپت روبرو خواهید شد.
ES6 به شما اجازه می دهد تا یک literal در مبنای هشت با استفاده از پیشوند 0o به همراه دنباله ای از ارقام octal از صفر تا هفت تعیین کنید. مثال زیر را مشاهده کنید:

var c = 0o51;
console.log(c); // 41

اگر از یک عدد نامعتبر در literal در مبنای هشت استفاده کنید، جاوا اسکریپت خطای SyntaxError را مانند مثال زیر نشان خواهد داد:

var d= 0o58;
console.log(d); // SyntaxError

literal های Binary (دودویی)

در ES5 جاوا اسکریپت هیچ literal از اعداد دو دویی معین نکرده بود. برای تجزیه یک رشته دو دویی از تابع parseInt() مانند نمونه استفاده می شد:

var e = parseInt('111',2);
console.log(e); // 7

ES6 برای literal دو دویی با استفاده از پیشوند 0o به همراه دنباله ای از اعداد binary (صفر و یک) پشتیبانی اضافه کرده است. مثال زیر را مشاهده کنید:

var f = 0b111;
console.log(f); // 7
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5٫00 out of 5)
Loading...
counter customizable free hit