1. ホーム
  2. javascript

[解決済み] lint 警告: parseInt に基数のパラメータがありません [重複] 。

2022-02-16 07:34:48

質問

以下のようなコードで、タイトルにあるような警告が出ています。

          year: parseInt(dateParts[0]),
               ......................^

よろしくお願いします。

解決方法は?

参照 のマニュアルを参照してください。 parseInt 引数を2つ取ります。2つ目の引数は、どの数値ベースを使いたいかを伝えるものです。これはほとんど常に 10 (10進数)です。

parseInt(dateParts[0],10)

指定しない場合は、データから推測されます。

<ブロッククオート

radixが未定義または0(あるいは存在しない)の場合、JavaScriptは以下を仮定する。

入力文字列が "0x" または "0X" で始まる場合、基数は 16 になります。 (16進数)で、残りの文字列が解析されます。

入力文字列が "0" で始まる場合、基数は8(8進数)または10(10進数)になります。 (10進数)です。 どの基数を選択するかは実装依存である。 ECMAScript 5 では、10進数を使用するように指定されていますが、すべてのブラウザで使用できるわけではありません。 はまだこれをサポートしていません。 このような理由で parseInt.

入力文字列が他の値で始まる場合、基数は10です。 (10進数)です。

上記を書いた後、何年か経ってから状況が変わりました。今は

ECMAScript 5の関数parseIntの仕様では、0文字で始まるStringを8進数値として扱う実装ができなくなりました。2021年現在、多くの実装でこの動作が採用されています。

...しかし、すべての実装が追いついていないため、少なくともブラウザ側のコードでは、依然として基数を使用する必要があります。