js的parseInt()的第二個參數(shù)大家用過嗎啸驯?
在jslint語法要求下客扎,每次被要求加第二個參數(shù)的時候總是不解,好多次都是把10填做第二個參數(shù)而沒去查為什么罚斗,直到遇到個瀏覽器兼容性問題才豁然開朗徙鱼。
將分鐘的字符串轉(zhuǎn)換為整形,開頭為0的字符串轉(zhuǎn)整形的時候會被當(dāng)做8進(jìn)制针姿,IE9袱吆,chrome默認(rèn)是10進(jìn)制;IE6默認(rèn)不是距淫,所以就會報錯:
<script>
console.log(parseInt('09',10)); // 輸出0 IE6
console.log(parseInt('09',10)); // 輸出9 chrome
</script>
先看一下js的進(jìn)制表示法就能理解了:
十進(jìn)制直接表示绞绒,例如:1,2榕暇,3蓬衡,4,5彤枢,6
八進(jìn)制要加零表示狰晚,例如:00,01缴啡,02壁晒,03,04业栅,05
十六進(jìn)制要加0x表示秒咐,例如:0xA1,0x13,0xFF
再看下綜合的例子:
<script>
console.log(parseInt('010',10)); // 輸出10
console.log(parseInt('010',8)); // 輸出8
console.log(parseInt('0x10',10)); // 輸出0
console.log(parseInt('0x10',16)); // 輸出16
</script>