ニュース

parseInt は基数を指定できます。 (指定できる値は「2」「8」「10」「16」) ですので、きちんと 10 進数を指定してやれば var piyo = parseInt (hoge, 10); 0 には変換されずに期待通りの値が取得できるはずです。 要はちゃんと 基数 を指定しろって事ですね。
この「parseInt ()」関数の一見意味不明な挙動は割と昔から知られているようで(参照: A JavaScript Optional Argument Hazard 、JavaScriptのオプション引数の ...
JavaScriptのparseInt関数 JavaScriptには、 文字列を整数に変換する組み込みの関数 parseInt があります。 この関数は、 第1引数に文字列、 第2引数に基数を渡して使うのが基本です。 しかし、 基数を省略した場合は、 文字列の中身に応じて自動的に基数が選ばれます。
The parseInt () function parses a string argument and returns an integer of the specified radix (the base in mathematical numeral systems). 仕様では「文字列引数」としているので、ツイートされている例題自体が「誤用」である。
方法 var str = "00000010"; console. log (parseInt (str, 10)); // ⇒10 冒頭の '00000010' は 文字列型 だが、JavaScript の場合は parseInt() に渡すと出来るだけ数字を維持したまま 数値型 に変換してくれる。 単純に parseInt() に渡すだけで 0 を取り除いた数値にしてくれる。
JavaScript parseInt () The parseInt () function parses a string argument and returns an integer of the specified radix (the base in mathematical numeral systems).
The date parsing routine of the es5 binary uses Number.parseInt which does not exist in Nashorn. Presumably the code should simply use parseInt like everywhere else.