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皆是這麼寫, 在這裡寫是為了複習一下。
進位的表示:
八進位: 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皆是這麼寫, 在這裡寫是為了複習一下。
留言
張貼留言