JavaScriptのparseIntの8進数の動作を回避するにはどうすればよいですか?
JavaScriptで以下を実行してみてください。 parseInt('01'); //equals 1 parseInt('02'); //equals 2 parseInt('03'); //equals 3 parseInt('04'); //equals 4 parseInt('05'); //equals 5 parseInt('06'); //equals 6 parseInt('07'); //equals 7 parseInt('08'); //equals 0 !! parseInt('09'); //equals 0 !! JavaScriptが先行ゼロが8進整数を示すと考える難しい方法を学んだところです。base -8 がない"8"か"9"、8であるので、関数はゼロを返します。好むと好まざるとにかかわらず、これは仕様によるものです。 回避策は何ですか? 注:完全を期すために、私は解決策を投稿しようとしていますが、それは私が嫌う解決策なので、他の/より良い答えを投稿してください。 更新: JavaScript標準の第5版(ECMA-262)では、この動作を排除する重大な変更が導入されています。Mozillaは良い記事を書いています。