JavaScriptのparseIntで文字列を整数に変換するときは基数を指定しよう。
parseIntは文字列を整数に変換する。
parseInt('123'); //=> 123
parseInt('3.14'); //=> 3
parseInt('42.195km'); //=> 42
parseIntは2番目の引数に基数を指定することができる。
//10進数
parseInt('20', 10); //=> 20
//8進数
parseInt('20', 8); //=> 16
//16進数
parseInt('20', 16); //=> 32
基数を指定しないときは、最初の文字が「0」のときは8進数と見なされる。
parseInt('10'); //=> 10進数「10」
parseInt('010'); //=> 8進数「8」
日付や時間を解析するプログラムを書いているとき、文字列の先頭に「0」が入ることがある。
その場合は、8進数で変換されてしまう。
parseInt('08'); //=> 0
parseInt('09'); //=> 0
このトラブルを避けるために、parseIntを使うときは、常に基数を指定するようにしよう。
parseInt('08', 10); //=> 8
parseInt('09', 10); //=> 9