淺析ES6的八進(jìn)制與二進(jìn)制整數(shù)字面量
前言
在幾年前,當(dāng)SpiderMonkey實(shí)現(xiàn)了嚴(yán)格模式的時(shí)候.我了解到,嚴(yán)格模式禁用了八進(jìn)制整數(shù)字面量的寫法.因?yàn)橛凶C據(jù)表明,一些新手會(huì)利用前導(dǎo)0來(lái)對(duì)齊多行中的數(shù)字,從而導(dǎo)致意想不到的結(jié)果:
var sum = 015 + // 相當(dāng)于十進(jìn)制的13,而不是15 197 + 001; // 反正是1 console.log(sum) // 相加得到的和是211,而不是新手認(rèn)為的213
但是仍有一些開(kāi)發(fā)者們需要八進(jìn)制整數(shù)(尤其是那些Mozilla擴(kuò)展開(kāi)發(fā)者和node.js開(kāi)發(fā)者),最常見(jiàn)的就是用在處理文件權(quán)限(755,644這些)的時(shí)候.因此,ES6又增加了一種新的八進(jìn)制整數(shù)字面量寫法.和十六進(jìn)制的0x或0X類似,新的八進(jìn)制整數(shù)使用0o或0O作為前導(dǎo)標(biāo)識(shí),后面跟若干個(gè)八進(jìn)制的數(shù)字字符(0到7),這種寫法就不會(huì)再困擾新手了:
var DEFAULT_PERMS = 0o644; // 嚴(yán)格模式下也可用
值得注意的一點(diǎn)是,0O前綴的可讀性太差了(0和大寫的O長(zhǎng)的太像了,很難區(qū)分),我在esdiscuss上提出了這個(gè)問(wèn)題,希望能禁用掉大寫的0O前綴,不過(guò)TC39目前的決定還是認(rèn)為一致性應(yīng)該大于可讀性(一致性指的是要和0X以及0B等一致).我認(rèn)為這個(gè)決定是值得商榷的,我推薦你永遠(yuǎn)不要使用大寫的0O.
另外,一些開(kāi)發(fā)者們還需要二進(jìn)制的整數(shù)字面量寫法,這種寫法ECMAScript從來(lái)沒(méi)有支持過(guò).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)了這兩個(gè)語(yǔ)法,如果你更富有冒險(xiǎn)精神,還可以使用更新的Firefox Nightly.
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家學(xué)習(xí)ES6能有所幫助。如果有疑問(wèn)可以留言交流。
相關(guān)文章
javascript 保存文件到本地實(shí)現(xiàn)方法
本文將提供兩種方式保存圖片,大家可以根據(jù)喜歡自由選擇2012-11-11js 判斷一個(gè)數(shù)字是不是2的n次方冪的實(shí)例
下面小編就為大家分享一篇js 判斷一個(gè)數(shù)字是不是2的n次方冪的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助2017-11-11JavaScript中常用的3種彈窗(警告框、確認(rèn)框、提示框)
JavaScript提供了幾種常用的彈窗方法,用于與用戶進(jìn)行交互或顯示提示消息,這篇文章主要給大家介紹了關(guān)于JavaScript中常用的3種彈窗的相關(guān)資料,分別包括警告框、確認(rèn)框、提示框,需要的朋友可以參考下2023-09-09微信小程序?qū)崿F(xiàn)點(diǎn)擊導(dǎo)航條切換頁(yè)面
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)點(diǎn)擊導(dǎo)航條切換頁(yè)面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11javascript實(shí)現(xiàn)tab切換特效
這篇文章主要介紹了javascript實(shí)現(xiàn)tab切換特效,實(shí)現(xiàn)的方法很簡(jiǎn)單,特別適合初學(xué)者學(xué)習(xí)javascript實(shí)現(xiàn)tab切換特效,tab切換再也不是問(wèn)題,需要的朋友可以參考下2015-11-11js+audio實(shí)現(xiàn)音樂(lè)播放器
這篇文章主要為大家詳細(xì)介紹了js+audio實(shí)現(xiàn)音樂(lè)播放器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09