JavaScriptを使用して計算を行っていたら罠にかかったので情報共有を…_(:3」∠)_
JavaScriptで数値変換の関数として大体使っているのがparseInt()なのですが、
古いブラウザで使用する場合は気をつけていないと痛い目にあいます。
関数の基本的な仕様については下記の通りです。
parseInt(string, radix) | |
---|---|
引数 | 説明 |
string | 変換対象の値 |
radix(省略可) | 基数 ※変換対象の値の先頭が「0」から始まる場合には 「8進数」として変換される場合有 |
もし第二引数を省略した状態で「01111」をparseInt関数で変換した場合、
ブラウザによっては「1111」ではなく「585」と変換されてしまいます。
この仕様についてはECMAScript5では無かったことにされている為、
最近のブラウザでは問題なく10進数で変換しています。
ですがparseInt関数を使用する際には念のため下記の通りに実装しておいた方が良さそうです。
var hoge = "01111"; // 第二引数に基数「10」をセットする var resultNum = parseInt(hoge, 10);
ありがた迷惑(¦3 _ )=