あるプログラマの日記

プログラマのメモ、出来事、考えたこと、勉強とかの雑記

文字列から整数へ変換

javaJavaScriptは、全然別物の言語なんですが、同名のメソッドがいくつかあります。その中のparseInt()で、ひっかかりました。javaは、Integer.parseInt()クラスメソッドです。文字列をint型整数に変換してくれるメソッドです。引数にStringのインスタンスつまり文字列を指定すると、int型整数に変換して返してくれます。
JavaScriptのparseInt()は、親切というか、おせっかいというか、文字列の数値の先頭に"0"がつくとその文字列を8進数として変換してくれます。8進数でなく10進数であれば、第2引数に基数として10を指定すれば、指定した基数の10進数で変換してくれるのですが、最初はうっかりとjavaの感覚で使っていたので、parseInt()に"08"とか"09"を指定すると0に変換されて返されてくるので、戸惑いました。JavaScriptの言語仕様をすぐ確認すればよかったのですが、javaのInteger.parseInt()では、"08"や"09"も、10進数として変換するので、バグかと思ってしまいました。バグではなく言語仕様なんですね。あらためて全然別物の言語だということを認識したのですが、別物の言語のわりには、javaと同名のメソッドが多いので、紛らわしいです。