close
console.log( parseInt( "017" ) ); // 15
console.log( parseInt( "08" ) ); // 0
為什麼?? 因為 parseInt 的傳入值開頭是 "0" 就會當成 8 進位處理 ("0x" 是 16 進位)
"017" >>> 8 + 7 = 15
"08" >>> 因為超過 8 進位範圍 , 結果為 0
為了避免矛盾和意外的結果,最好指定基數參數。
console.log( parseInt( "017" , 10 ) ); // 17
或是改用以下方法將字串變數字 , 而且效能優於 parseInt()
+"08" // 結果是 8
Number("08") // 8
全站熱搜