2008/09/27

Javascript 使用 parseInt() 時務必指定進位基數

parseInt() 的第二個參數是指定進位基數,若不指定,parseInt 會依據第一個參數自動判斷。
如果開頭是 0x 或 0X,則視為 16 進位;若開頭是 0,則視為 8 進位;其餘則視為 10 進位。

var e = '1234';
alert(parseInt(e)); // 1234
var f = '01234';
alert(parseInt(f)); // 668, 八進位制的 1234 轉成十進位是 668
alert(parseInt(f, 10)); // 1234, 指定成十進位。

因此在使用 parseInt() 時,除非真的要使用到預設的自動判斷機制,否則請指定進位基數,免得造成自己的困擾。

Ref 1: JavaScript網頁設計師手札
Ref 2: JavaScript parseInt() Function

沒有留言:

張貼留言