淺析ES6的八進(jìn)制與二進(jìn)制整數(shù)字面量
前言
在幾年前,當(dāng)SpiderMonkey實(shí)現(xiàn)了嚴(yán)格模式的時候.我了解到,嚴(yán)格模式禁用了八進(jìn)制整數(shù)字面量的寫法.因?yàn)橛凶C據(jù)表明,一些新手會利用前導(dǎo)0來對齊多行中的數(shù)字,從而導(dǎo)致意想不到的結(jié)果:
var sum = 015 + // 相當(dāng)于十進(jìn)制的13,而不是15
197 +
001; // 反正是1
console.log(sum) // 相加得到的和是211,而不是新手認(rèn)為的213
但是仍有一些開發(fā)者們需要八進(jìn)制整數(shù)(尤其是那些Mozilla擴(kuò)展開發(fā)者和node.js開發(fā)者),最常見的就是用在處理文件權(quán)限(755,644這些)的時候.因此,ES6又增加了一種新的八進(jìn)制整數(shù)字面量寫法.和十六進(jìn)制的0x或0X類似,新的八進(jìn)制整數(shù)使用0o或0O作為前導(dǎo)標(biāo)識,后面跟若干個八進(jìn)制的數(shù)字字符(0到7),這種寫法就不會再困擾新手了:
var DEFAULT_PERMS = 0o644; // 嚴(yán)格模式下也可用
值得注意的一點(diǎn)是,0O前綴的可讀性太差了(0和大寫的O長的太像了,很難區(qū)分),我在esdiscuss上提出了這個問題,希望能禁用掉大寫的0O前綴,不過TC39目前的決定還是認(rèn)為一致性應(yīng)該大于可讀性(一致性指的是要和0X以及0B等一致).我認(rèn)為這個決定是值得商榷的,我推薦你永遠(yuǎn)不要使用大寫的0O.
另外,一些開發(fā)者們還需要二進(jìn)制的整數(shù)字面量寫法,這種寫法ECMAScript從來沒有支持過.ES6支持了這種寫法,和八進(jìn)制以及十六進(jìn)制類似,使用0b或0B前綴:
var FLT_SIGNBIT = 0b10000000000000000000000000000000; var FLT_EXPONENT = 0b01111111100000000000000000000000; var FLT_MANTISSA = 0b00000000011111111111111111111111;
目前Firefox Aurora已經(jīng)實(shí)現(xiàn)了這兩個語法,如果你更富有冒險精神,還可以使用更新的Firefox Nightly.
總結(jié)
以上就是這篇文章的全部內(nèi)容,希望本文的內(nèi)容對大家學(xué)習(xí)ES6能有所幫助。如果有疑問可以留言交流。
相關(guān)文章
videojs+swiper實(shí)現(xiàn)淘寶商品詳情輪播圖
這篇文章主要為大家詳細(xì)介紹了videojs+swiper實(shí)現(xiàn)淘寶商品詳情輪播圖,輪播翻動,視頻暫停,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-04-04
JavaScript調(diào)用后臺的三種方法實(shí)例
這篇文章介紹了JavaScript調(diào)用后臺的三種方法實(shí)例,有需要的朋友可以參考一下2013-10-10
JS?getRandomValues和Math.random方法深入解析
這篇文章主要為大家介紹了JS?getRandomValues和Math.random方法深入詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
基于javascript實(shí)現(xiàn)按圓形排列DIV元素(二)
本篇文章主要介紹基于javascript實(shí)現(xiàn)按圓形排列DIV元素的方法,此文著重于介紹怎樣實(shí)現(xiàn)的按圓形排列DIV元素的運(yùn)動原理和實(shí)現(xiàn)效果代碼,需要的朋友來看下吧2016-12-12
把json格式的字符串轉(zhuǎn)換成javascript對象或數(shù)組的方法總結(jié)
下面小編就為大家?guī)硪黄裫son格式的字符串轉(zhuǎn)換成javascript對象或數(shù)組的方法總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11
JS Generator 函數(shù)的含義與用法實(shí)例總結(jié)
這篇文章主要介紹了JS Generator 函數(shù)的含義與用法,結(jié)合實(shí)例形式總結(jié)分析了JS Generator 函數(shù)基本含義、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04
BootstrapVue選項(xiàng)卡標(biāo)題增加關(guān)閉按鈕的方法
這篇文章主要為大家詳細(xì)介紹了BootstrapVue選項(xiàng)卡標(biāo)題增加關(guān)閉按鈕的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04
JavaScript自動點(diǎn)擊鏈接 防止繞過瀏覽器訪問的方法
下面小編就為大家?guī)硪黄狫avaScript自動點(diǎn)擊鏈接 防止繞過瀏覽器訪問的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01

