diff --git a/files/ja/web/javascript/reference/global_objects/parseint/index.md b/files/ja/web/javascript/reference/global_objects/parseint/index.md index cc8f235d25dc32..52876734dcb757 100644 --- a/files/ja/web/javascript/reference/global_objects/parseint/index.md +++ b/files/ja/web/javascript/reference/global_objects/parseint/index.md @@ -2,7 +2,7 @@ title: parseInt() slug: Web/JavaScript/Reference/Global_Objects/parseInt l10n: - sourceCommit: 732e4808b512db2bdb3fd0c561323d302a003a0e + sourceCommit: 8421c0cd94fa5aa237c833ac6d24885edbc7d721 --- {{jsSidebar("Objects")}} @@ -21,7 +21,7 @@ parseInt(string, radix) ### 引数 - `string` - - : 整数で始まる文字列です。この引数では先頭の{{glossary("whitespace", "ホワイトスペース")}}は無視されます。 + - : 整数で始まる文字列です。この引数では先頭の{{Glossary("whitespace", "ホワイトスペース")}}は無視されます。 - `radix` {{optional_inline}} - : `2` から `36` までの整数で、`string` の*基数*(数学的記数法の底)を表します。これは [32 ビット整数](/ja/docs/Web/JavaScript/Reference/Global_Objects/Number#fixed-width_number_conversion)に変換されます。変換後にそれが 0 でなく、 \[2, 36] の範囲外であった場合、この関数は常に `NaN` を返します。`0` または指定されなかった場合、基数は `string` の値に基づいて推測されます。既定で常に `10` になるわけではありません。[下記の解説](#解説)では、 `radix` が提供されなかった場合に何が起こるかをもっと詳細に説明しています。 @@ -30,7 +30,7 @@ parseInt(string, radix) 指定された `string` を解釈した整数値です。また、次の場合は {{jsxref("NaN")}} が返されます。 -- `radix` が `2` よりも小さいか `36` よりも大きい、または +- `radix` を 32 ビット整数にした値が `2` よりも小さいか `36` よりも大きい、または - ホワイトスペース以外の最初の文字が数値に変換できない。 > [!NOTE] @@ -38,7 +38,7 @@ parseInt(string, radix) ## 解説 -`parseInt` 関数は[第 1 引数を文字列に変換し](/ja/docs/Web/JavaScript/Reference/Global_Objects/String#string_coercion)、解釈したうえで、整数または `NaN` を返します。 +`parseInt` 関数は[第 1 引数を文字列に変換し](/ja/docs/Web/JavaScript/Reference/Global_Objects/String#文字列変換)、解釈したうえで、整数または `NaN` を返します。 `NaN` でない場合は、返値は第 1 引数を指定された `radix` で数値として解釈した整数値になります。(例えば、`radix` が `10` であれば 10 進数からの変換で、`8` であれば 8 進数からの変換で、`16` であれば 16 進数からの変換、などです。) @@ -48,7 +48,7 @@ parseInt(string, radix) 2. 入力された `string` が他の何らかの値で始まる場合、基数は `10` (10 進数)になります。 > [!NOTE] -> 他にも `0b` のような接頭辞は[数値リテラル](/ja/docs/Web/JavaScript/Reference/Lexical_grammar#2_進数)では有効ですが、 `parseInt()` では通常の数字として扱われます。 `parseInt()` は `0` で始まる文字列を 8 進数の値として扱うことはありません。 `parseInt()` が認識できる接頭辞は、16 進数の値に対する `0x` または `0X` だけです。 `radix` がなければ、それ以外はすべて 10 進数として解釈されます。 +> 他にも `0b` のような接頭辞は[数値リテラル](/ja/docs/Web/JavaScript/Reference/Lexical_grammar#2_進数)では有効ですが、 `parseInt()` では通常の数字として扱われます。 `parseInt()` は `0` で始まる文字列を 8 進数の値として扱うことはありません。 `parseInt()` が認識できる接頭辞は、16 進数の値に対する `0x` または `0X` だけです。 `radix` がなければ、それ以外はすべて 10 進数として解釈されます。 [`Number()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/Number) または [`BigInt()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/BigInt/BigInt) を使用して、これらの接頭辞を解釈することができます。 基数が `16` の場合、 `parseInt()` では、オプションで符号文字 (`+`/`-`) の後に `0x` または `0X` を接頭辞として文字列を指定することができます。 @@ -60,12 +60,11 @@ parseInt(string, radix) もし `parseInt` が `radix` で指定された基数に含まれる数字以外の文字に遭遇した場合、その文字とそれに続くすべての文字を無視し、この点まで解釈できた整数値を返します。例えば、 `1e3` は技術的には整数をエンコードしたものですが、(そして [`parseFloat()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/parseFloat) では正しく `1000` と解釈されますが)、 `parseInt("1e3", 10)` は `1` を返します。 `e` は基数 10 の有効な数字ではないからです。 `.` も数字ではないので、返値は常に整数になります。 -最初の文字が使用している基数で数字に変換できなかった場合は、 `parseInt` は `NaN` を返します。 -先頭のホワイトスペースは許容されます。 +最初の文字が使用している基数で数字に変換できなかった場合は、 `parseInt` は `NaN` を返します。先頭のホワイトスペースは許容されます。 数値演算の目的では、`NaN` は基数がいくつであっても数値にはなりません。 [`Number.isNaN`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN) 関数を使うと、 `parseInt` の結果が `NaN` であるかどうか確かめられます。数値演算で `NaN` が与えられると、演算結果も `NaN` になります。 -巨大な数値では `e` の文字を文字列表現の中で使用しますので(例えば **`6.022E23`** は 6.022 × 10^23 を表します)、`parseInt` を使用して数値を切り捨てると、とても大きな数字やとても小さな数字を使用する際に予期しない結果を生み出すことがあります。 `parseInt` を {{jsxref("Math.trunc()")}} の代用として使うべきではありません。 +巨大な数値では `e` の文字を文字列表現の中で使用しますので(例えば `6.022E23` は 6.022 × 10^23 を表します)、`parseInt` を使用して数値を切り捨てると、とても大きな数字やとても小さな数字を使用する際に予期しない結果を生み出すことがあります。 `parseInt` を {{jsxref("Math.trunc()")}} の代用として使うべきではありません。 数値を基数を指定してその文字列表現に変換するには、[`thatNumber.toString(radix)`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/toString) を用います。 @@ -81,7 +80,7 @@ parseInt(string, radix) parseInt("0xF", 16); parseInt("F", 16); parseInt("17", 8); -parseInt("015", 10); // ただし `parseInt('015', 8)` は 13 を返す +parseInt("015", 10); parseInt("15,123", 10); parseInt("FXX123", 16); parseInt("1111", 2); @@ -131,7 +130,7 @@ BigInt("900719925474099267"); // 900719925474099267n ``` -`parseInt` は[数値の区切り文字](/ja/docs/Web/JavaScript/Reference/Lexical_grammar#numeric_separators)を扱うことができません。 +`parseInt` は[数値の区切り文字](/ja/docs/Web/JavaScript/Reference/Lexical_grammar#数値の区切り文字)を扱うことができません。 ```js example-bad parseInt("123_456"); // 123 @@ -146,7 +145,7 @@ parseInt(null, 36); // 1112745: "null" の文字列は 36 進数で 1112745 parseInt(undefined, 36); // 86464843759093: "undefined" の文字列は 36 進数で 86464843759093 ``` -一般に、 {{jsxref("Math.trunc()")}} の代用として使用するのは良くない考えです。小さな数では使えるかもしれません。 +一般に、`parseInt()` を文字列以外で使用すること、特に {{jsxref("Math.trunc()")}} の代用として使用するのは良くない考えです。小さな数では使えるかもしれません。 ```js parseInt(15.99, 10); // 15 @@ -177,11 +176,11 @@ parseInt(1e21, 10); // 1 ## 関連情報 -- {{jsxref("Global_Objects/parseFloat", "parseFloat()")}} -- [`Number()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/Number) +- {{jsxref("parseFloat()")}} +- [`Number()` コンストラクター](/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/Number) - {{jsxref("Number.parseFloat()")}} - {{jsxref("Number.parseInt()")}} -- {{jsxref("Global_Objects/isNaN", "isNaN()")}} +- {{jsxref("isNaN()")}} - {{jsxref("Number.prototype.toString()")}} - {{jsxref("Object.prototype.valueOf()")}} -- [`BigInt()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/BigInt/BigInt) +- [`BigInt()` コンストラクター](/ja/docs/Web/JavaScript/Reference/Global_Objects/BigInt/BigInt)