ES6 -- 二進位&八進位

之前在"strict mode & 進位表示"這篇有介紹過:(再寫一次)

進位的表示:

八進位: 010 (ES5.1); 0o10 (ES6)
十六進位: 0x10 (ES5.1)
二進位: 0b10 (ES6)



我們複習完上面, 這次用例子仔細介紹吧:


在ES5 時:

1. 以字串方式表示二進位數字

2. strict mode時不能使用八進位數字

e.g.

console.log(parseInt("11111111", 2));                          // 255  -->  parseInt()是將任意進位轉成十進位。 在此將二進位轉成十進位

console.log(parseInt("0377", 8));                                  // 255 --> 在此將八進位轉成十進位

console.log(0377 === 255);                                           // true --> 在non-strict mode時。Octal literals are not allowed in strict mode. --> 在strict mode時無法用"0"開頭表示八進位。



在ES6時:

console.log(0b11111111);                                              // 255 --> "0b"開頭表示將二進位轉成十進位

console.log(0o377);                                                         // 255 --> "0o"開頭表示將八進位轉成十進位

console.log(0xFF);                                                            // 255  --> 從ES5開始, "0x"開頭就是表示將十六進位轉成十進位。這部分規則未變, 不管是在ES5或是ES6皆是這麼寫, 在這裡寫是為了複習一下。



留言

熱門文章