js數值進制

數值的進制

使用字面量(literal)直接表示一個數值時,JavaScript 對整數提供四種進制的表示方法:十進制、十六進制、八進制、二進制。瀏覽器

  • 十進制:沒有前導0的數值。
  • 八進制:有前綴0o或0O的數值,或者有前導0、且只用到0-7的八個阿拉伯數字的數值。
  • 十六進制:有前綴0x或0X的數值。
  • 二進制:有前綴0b或0B的數值。

默認狀況下,JavaScript 內部會自動將八進制、十六進制、二進制轉爲十進制。下面是一些例子。ide

0xff // 255
0o377 // 255
0b11 // 3

若是八進制、十六進制、二進制的數值裏面,出現不屬於該進制的數字,就會報錯。ip

0xzz // 報錯
0o88 // 報錯
0b22 // 報錯

上面代碼中,十六進制出現了字母z、八進制出現數字八、二進制出現數字2,所以報錯。it

一般來講,有前導0的數值會被視爲八進制,可是若是前導0後面有數字8和9,則該數值被視爲十進制。class

0888 // 888
0777 // 511

前導0表示八進制,處理時很容易形成混亂。ES5 的嚴格模式和 ES6,已經廢除了這種表示法,可是瀏覽器爲了兼容之前的代碼,目前還繼續支持這種表示法。二進制

相關文章
相關標籤/搜索