Engineer Blog開発者ブログ

2020.9.8

parseInt()の落とし穴。。。

こんにちは。

今回はparseInt()を使用する際の注意点を記載します。

 

parseInt()とは、javaScriptのグローバル関数の一つで、文字列→整数値の変換をする際に使用します。

書き方としては、以下のように書きます。

/*--------------------------------------------------
   parseInt(文字列,基数); 
   文字列:文字列型の数字  基数:2~36までの数値
---------------------------------------------------*/
var num = paeseInt("100",10); // num = 100

 

そして、今回取り上げたいのは「基数」です!

基数とは、何進数として変換するのかを指定します。(2進数? 8進数? 10進数?)

しかし、この基数は省略することが可能で、省略すると文字列を見て自動で以下のように解釈されてしまいます!!(これが落とし穴。。)

  • "0x"または"0X"で始まる場合 → 16進数
  • "0"で始まる場合        → 8進数または10進数
  • 上記2つ以外で始まる場合    → 10進数

何も考えず基数を省略してプログラミングすると、値によってはエラーとなってしまいます。

例えば、"08"を変換しようとした場合、8進数で解釈されてしまうと

"08"は存在しない値なので、変換不能となりNaNが返却されてしまいます。

日付データを計算したいなどの場合は月や日にちが"0"で始まる場合があるので、要注意ですね。

 

結論、基数は必ず書きましょう!!(そこそこjavaScriptに触れている人にとっては当然でしょうか。。。|д゚)チラッ )

Contact
お問い合わせ

電話番号0120 - 889 - 236
受付時間:平日 9:00-18:00