曾經有個client的功能需要將user的閱讀秒數記錄下來回存到DB中,但奇怪的是QA總是發出BUG,描述是累積秒數有時正確有時不正確原因不明。
經過仔細的trace才發現原來parseInt這個方法其第二個參數(radix)是用來定義進位方式規則。才明白parseInt預設是8進位,所以當有字串例如:
parseInt('08') 便會轉換為0
需要寫成 parseInt('08',10) 結果才會是8。
但這個問題在較新的browser已經不會再出現了,在ECMAScript 5之後parserInt預設值已改為10進位了。
沒有留言:
張貼留言