diff options
author | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2022-01-11 01:52:20 +0900 |
---|---|---|
committer | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2022-01-21 00:15:15 +0900 |
commit | e30319090f9a0d5ed9fc23acac68dc7006b3ef75 (patch) | |
tree | b267f999be04960f248a8cdb2487f25e3c8f1c25 /files | |
parent | a9c2ad9452b1536854cbed947ec708fdf92902ab (diff) | |
download | translated-content-e30319090f9a0d5ed9fc23acac68dc7006b3ef75.tar.gz translated-content-e30319090f9a0d5ed9fc23acac68dc7006b3ef75.tar.bz2 translated-content-e30319090f9a0d5ed9fc23acac68dc7006b3ef75.zip |
2021/09/03 時点の英語版に同期
Diffstat (limited to 'files')
-rw-r--r-- | files/ja/web/javascript/reference/global_objects/number/index.md | 257 |
1 files changed, 123 insertions, 134 deletions
diff --git a/files/ja/web/javascript/reference/global_objects/number/index.md b/files/ja/web/javascript/reference/global_objects/number/index.md index 4b16898eaf..e3b7373b03 100644 --- a/files/ja/web/javascript/reference/global_objects/number/index.md +++ b/files/ja/web/javascript/reference/global_objects/number/index.md @@ -2,147 +2,147 @@ title: Number slug: Web/JavaScript/Reference/Global_Objects/Number tags: - - Class + - クラス - JavaScript - Number - - Reference + - リファレンス + - ポリフィル +browser-compat: javascript.builtins.Number translation_of: Web/JavaScript/Reference/Global_Objects/Number --- -<div>{{JSRef}}</div> +{{JSRef}}**`Number`** は[プリミティブラッパーオブジェクト](/ja/docs/Glossary/Primitive#primitive_wrapper_objects_in_javascript)で、 `37` や `-9.25` のような数値を表現したり操作したりするために使用されます。 -<p><strong><code>Number</code></strong> は<a href="/ja/docs/Glossary/Primitive#Primitive_wrapper_objects_in_JavaScript">プリミティブラッパーオブジェクト</a>で、 <code>37</code> や <code>-9.25</code> のような数値を表現したり操作したりするために使用されます。</p> +**`Number`** コンストラクターは、数値を扱うための定数とメソッドを含んでいます。他の型の値は **`Number()` 関数**を用いて数値に変換することができます。 -<p><strong><code>Number</code></strong> コンストラクターは、数値を扱うための定数とメソッドを含んでいます。他の型の値は <strong><code>Number()</code> 関数</strong>を用いて数値に変換することができます。</p> +JavaScript の **Number** 型は [IEEE 754 の倍精度 64ビットバイナリー形式](https://ja.wikipedia.org/wiki/%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0)であり、 Java や C# の `double` のようなものです。これは小数点以下の数値を表すことができることを意味しますが、格納できる値にはいくつかの制限があります。 Number は小数点以下約 17 桁の精度しか保持できません。演算は[丸め誤差](https://en.wikipedia.org/wiki/Floating-point_arithmetic#Representable_numbers,_conversion_and_rounding)の影響を受けます。 Number が保持できる最大の値は約 1.8E308 です。それ以上の数値は、特殊な `Number` の定数 {{jsxref("Infinity")}} に置き換えられます。 -<p>JavaScript の <strong>Number</strong> 型は <a href="https://ja.wikipedia.org/wiki/%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0">IEEE 754 の倍精度 64ビットバイナリ形式</a>であり、 Java や C# の <code>double</code> のようなものです。これは小数点以下の数値を表すことができることを意味しますが、格納できる値にはいくつかの制限があります。 Number は小数点以下約 17 桁の精度しか保持できません。演算は<a href="https://en.wikipedia.org/wiki/Floating-point_arithmetic#Representable_numbers,_conversion_and_rounding">丸め誤差</a>の影響を受けます。 Number が保持できる最大の値は約1.8×10<sup>308</sup>です。それ以上の数値は、特殊な数値定数 {{jsxref("Infinity")}} に置き換えられます。</p> +JavaScript コードにおける `37` のような数値リテラルは浮動小数点値であり、整数ではありません。日常的に使用される独立した整数型はありません。 (JavaScript は {{jsxref("BigInt")}} 型を持つようになりましたが、日常の利用で Number を置き換えるように設計されてはいません。 `37` は Number であり、 BigInt ではありません。) -<p>JavaScript コードにおける <code>37</code> のような数値リテラルは浮動小数点値であり、整数ではありません。日常的に使用される独立した整数型はありません。 (JavaScript は {{jsxref("BigInt")}} 型を持つようになりましたが、日常の利用で Number を置き換えるように設計されてはいません。 <code>37</code> は Number であり、 BigInt ではありません。)</p> +`Number` は `0b101`, `0o13`, `0x0A` のようなリテラル形式で表現することもできます。数値の[字句文法はこちら](/ja/docs/Web/JavaScript/Reference/Lexical_grammar#numeric_literals)を参照してください。 -<p>Number は <code>0b101</code>, <code>0o13</code>, <code>0x0A</code> のようなリテラル形式で表現することもできます。数値の<a href="/ja/docs/Web/JavaScript/Reference/Lexical_grammar#Numeric_literals">字句文法はこちら</a>を参照してください。</p> +## 解説 -<h2 id="Description">解説</h2> +関数として使用された場合、 `Number(value)` は文字列やその他の値を Number 型に変換します。値が変換できない場合は、 {{jsxref("NaN")}} を返します。 -<p>関数として使用された場合、 <code>Number(value)</code> は文字列やその他の値を Number 型に変換します。値が変換できない場合は、 {{jsxref("NaN")}} を返します。</p> +### リテラル構文 -<h3 id="Literal_syntax">リテラル構文</h3> - -<pre class="brush: js">123 // 百二十三 +```js +123 // 百二十三 123.0 // 同じ -123 === 123.0 // true</pre> +123 === 123.0 // true +``` -<h3 id="Function_syntax">関数構文</h3> +### 関数構文 -<pre class="brush: js">Number('123') // 数値 123 を返す +```js +Number('123') // 数値 123 を返す Number('123') === 123 // true Number("unicorn") // NaN Number(undefined) // NaN -</pre> - -<h2 id="Constructor">コンストラクター</h2> - -<dl> - <dt><a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/Number"><code>Number()</code></a></dt> - <dd>新しい <code>Number</code> 値を生成します。</dd> -</dl> - -<h2 id="Static_properties">静的プロパティ</h2> - -<dl> - <dt>{{jsxref("Number.EPSILON")}}</dt> - <dd>数値として表される 2 個の数の最小の差です。</dd> - <dt>{{jsxref("Number.MAX_SAFE_INTEGER")}}</dt> - <dd>JavaScript における確実な整数の最大値 (<code>2<sup>53</sup> - 1</code>) です。</dd> - <dt>{{jsxref("Number.MAX_VALUE")}}</dt> - <dd>表現可能な正の数の最大値です。</dd> - <dt>{{jsxref("Number.MIN_SAFE_INTEGER")}}</dt> - <dd>JavaScript における確実な整数の最小値 (<code>-(2<sup>53</sup> - 1)</code>) です。</dd> - <dt>{{jsxref("Number.MIN_VALUE")}}</dt> - <dd>表現可能な正の数の最小値。0 に最も近い正の数です (0 ではありません)。</dd> - <dt>{{jsxref("Number.NaN")}}</dt> - <dd>特殊な "<strong>N</strong>ot <strong>a</strong> <strong>N</strong>umber" (数値ではない) の値です。</dd> - <dt>{{jsxref("Number.NEGATIVE_INFINITY")}}</dt> - <dd>負の無限大を表す特別な値です。オーバーフロー時に返されます。</dd> - <dt>{{jsxref("Number.POSITIVE_INFINITY")}}</dt> - <dd>無限大を表す特別な値です。オーバーフロー時に返されます。</dd> - <dt>{{jsxref("Number.prototype")}}</dt> - <dd><code>Number</code> オブジェクトへのプロパティの追加を許可します。</dd> -</dl> - -<h2 id="Static_methods">静的メソッド</h2> - -<dl> - <dt>{{jsxref("Number.isNaN()")}}</dt> - <dd>渡された値が <code>NaN</code> であれば <code>true</code> を返します。</dd> - <dt>{{jsxref("Number.isFinite()")}}</dt> - <dd>渡された値が有限数であるかどうかを判断します。</dd> - <dt>{{jsxref("Number.isInteger()")}}</dt> - <dd>渡された値が整数であるかどうかを判断します。</dd> - <dt>{{jsxref("Number.isSafeInteger()")}}</dt> - <dd>渡された値が確実な範囲の整数 (<code>-(2<sup>53</sup> - 1)</code> から <code>2<sup>53</sup> - 1</code> の間) であれば <code>true</code> を返します。</dd> - <dt>{{jsxref("Number.parseFloat()", "Number.parseFloat(<var>string</var>)")}}</dt> - <dd>値はグローバルオブジェクトの {{jsxref("parseFloat", "parseFloat()")}} と同じです。</dd> - <dt>{{jsxref("Number.parseInt()", "Number.parseInt(<var>string</var>, [<var>radix</var>])")}}</dt> - <dd>値はグローバルオブジェクトの {{jsxref("parseInt", "parseInt()")}} と同じです。</dd> -</dl> - -<h2 id="Instance_methods">インスタンスメソッド</h2> - -<dl> - <dt>{{jsxref("Number.prototype.toExponential()" ,"Number.prototype.toExponential(<var>fractionDigits</var>)")}}</dt> - <dd>指数表記で数値を表す文字列を返します。</dd> - <dt>{{jsxref("Number.prototype.toFixed()", "Number.prototype.toFixed(<var>digits</var>)")}}</dt> - <dd>固定小数点表記で数値を表す文字列を返します。</dd> - <dt>{{jsxref("Number.prototype.toLocaleString()", "Number.prototype.toLocaleString([<var>locales</var> [, <var>options</var>]])")}}</dt> - <dd>この値を言語依存の表現で表した文字列を返します。 {{jsxref("Object.prototype.toLocaleString()")}} メソッドを上書きします。</dd> - <dt>{{jsxref("Number.prototype.toPrecision()", "Number.prototype.toPrecision(<var>precision</var>)")}}</dt> - <dd>指定された精度で、固定小数点表記または指数表記で数値で表す文字列を返します。</dd> - <dt>{{jsxref("Number.prototype.toString()", "Number.prototype.toString([<var>radix</var>])")}}</dt> - <dd>指定された基数を元に、指定されたオブジェクトを表す文字列を返します。 {{jsxref("Object.prototype.toString()")}} メソッドを上書きします。</dd> - <dt>{{jsxref("Number.prototype.valueOf()")}}</dt> - <dd>指定されたオブジェクトのプリミティブ値を返します。 {{jsxref("Object.prototype.valueOf()")}} メソッドを上書きします。</dd> -</dl> - -<h2 id="Examples">例</h2> - -<h3 id="Using_the_Number_object_to_assign_values_to_numeric_variables">Number オブジェクトを使用して変数に値を代入する</h3> - -<p>以下の例では、<code>Number</code> オブジェクトのプロパティを使用して、いくつかの数の変数に値を代入します。</p> - -<pre class="brush: js">const biggestNum = Number.MAX_VALUE +``` + +## コンストラクター + +- [`Number()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/Number) + - : 新しい `Number` 値を生成します。 + +## 静的プロパティ + +- {{jsxref("Number.EPSILON")}} + - : 数値として表される 2 個の数の最小の差です。 +- {{jsxref("Number.MAX_SAFE_INTEGER")}} + - : JavaScript における確実な整数の最大値 (`2^53 - 1`) です。 +- {{jsxref("Number.MAX_VALUE")}} + - : 表現可能な正の数の最大値です。 +- {{jsxref("Number.MIN_SAFE_INTEGER")}} + - : JavaScript における確実な整数の最小値 (`-(2^53 - 1)`) です。 +- {{jsxref("Number.MIN_VALUE")}} + - : 表現可能な正の数の最小値。0 に最も近い正の数です (0 ではありません)。 +- {{jsxref("Number.NaN")}} + - : 特殊な "**N**ot **a** **N**umber" (数値ではない) の値です。 +- {{jsxref("Number.NEGATIVE_INFINITY")}} + - : 負の無限大を表す特別な値です。オーバーフロー時に返されます。 +- {{jsxref("Number.POSITIVE_INFINITY")}} + - : 無限大を表す特別な値です。オーバーフロー時に返されます。 +- {{jsxref("Number", "Number.prototype")}} + - : `Number` オブジェクトへプロパティの追加ができるようにします。 + +## 静的メソッド + +- {{jsxref("Number.isNaN()")}} + - : 渡された値が `NaN` であるかどうかを判断します。 +- {{jsxref("Number.isFinite()")}} + - : 渡された値が有限数であるかどうかを判断します。 +- {{jsxref("Number.isInteger()")}} + - : 渡された値が整数であるかどうかを判断します。 +- {{jsxref("Number.isSafeInteger()")}} + - : 渡された値が確実な範囲の整数 (`-(2^53 - 1)` から `2^53 - 1` の間) であるかどうかを判断します。 +- {{jsxref("Number.parseFloat()", "Number.parseFloat(<var>string</var>)")}} + - : これはグローバルの {{jsxref("parseFloat", "parseFloat()")}} 関数と同じです。 +- {{jsxref("Number.parseInt()", "Number.parseInt(<var>string</var>, [<var>radix</var>])")}} + - : これはグローバルの {{jsxref("parseInt", "parseInt()")}} 関数と同じです。 + +## インスタンスメソッド + +- {{jsxref("Number.prototype.toExponential()" ,"Number.prototype.toExponential(<var>fractionDigits</var>)")}} + - : 指数表記で数値を表す文字列を返します。 +- {{jsxref("Number.prototype.toFixed()", "Number.prototype.toFixed(<var>digits</var>)")}} + - : 固定小数点表記で数値を表す文字列を返します。 +- {{jsxref("Number.prototype.toLocaleString()", "Number.prototype.toLocaleString([<var>locales</var> [, <var>options</var>]])")}} + - : この値を言語依存の表現で表す文字列を返します。 {{jsxref("Object.prototype.toLocaleString()")}} メソッドを上書きします。 +- {{jsxref("Number.prototype.toPrecision()", "Number.prototype.toPrecision(<var>precision</var>)")}} + - : 指定された精度で、固定小数点表記または指数表記で数値で表す文字列を返します。 +- {{jsxref("Number.prototype.toString()", "Number.prototype.toString([<var>radix</var>])")}} + - : 指定された基数を元に、指定されたオブジェクトを表す文字列を返します。 {{jsxref("Object.prototype.toString()")}} メソッドを上書きします。 +- {{jsxref("Number.prototype.valueOf()")}} + - : 指定されたオブジェクトのプリミティブ値を返します。 {{jsxref("Object.prototype.valueOf()")}} メソッドを上書きします。 + +## 例 + +### Number オブジェクトを使用して変数に値を代入する + +以下の例では、`Number` オブジェクトのプロパティを使用して、いくつかの数の変数に値を代入します。 + +```js +const biggestNum = Number.MAX_VALUE const smallestNum = Number.MIN_VALUE const infiniteNum = Number.POSITIVE_INFINITY const negInfiniteNum = Number.NEGATIVE_INFINITY const notANum = Number.NaN -</pre> +``` -<h3 id="Integer_range_for_Number">Number の整数の範囲</h3> +### Number の整数の範囲 -<p>次の例は、<code>Number</code> オブジェクトで表現可能な最小の整数値と最大の整数値です (詳細は、ECMAScript 標準の <em><a href="https://tc39.github.io/ecma262/#sec-ecmascript-language-types-number-type">6.1.6 The Number Type</a></em> の章を参照してください)。</p> +次の例は、`Number` オブジェクトで表現可能な最小の整数値と最大の整数値です (詳細は、ECMAScript 標準の [6.1.6 The Number Type](https://tc39.github.io/ecma262/#sec-ecmascript-language-types-number-type) の節を参照してください)。 -<pre class="brush: js">const biggestInt = Number.MAX_SAFE_INTEGER // (<code>2<sup>53</sup> - 1</code>) => 9007199254740991 -const smallestInt = Number.MIN_SAFE_INTEGER // -(<code>2<sup>53</sup> - 1</code>) => -9007199254740991</pre> +```js +const biggestInt = Number.MAX_SAFE_INTEGER // (2**53 - 1) => 9007199254740991 +const smallestInt = Number.MIN_SAFE_INTEGER // -(2**53 - 1) => -9007199254740991 +``` -<p>JSON にシリアライズされたデータを解析する場合、整数値がこの範囲を超えていると、 JSON パーサーがこの値を <code>Number</code> 型に変換したときに信頼できない値になります。</p> +JSON にシリアライズされたデータを解析する場合、整数値がこの範囲を超えていると、 JSON パーサーがこの値を `Number` 型に変換したときに信頼できない値になります。 -<p>可能な回避策として、代わりに {{jsxref("String")}} を使用してください。</p> +可能な回避策として、代わりに {{jsxref("String")}} を使用してください。 -<p>大きい数値は {{jsxref("BigInt")}} 型を用いて表すことができます。</p> +大きい数値は {{jsxref("BigInt")}} 型を用いて表すことができます。 -<h3 id="Using_Number_to_convert_a_Date_object">Number を使用して Date オブジェクトを変換する</h3> +### Number を使用して Date オブジェクトを変換する -<p>以下の例は、 <code>Number</code> を関数として用いて、{{jsxref("Date")}} オブジェクトを数値に変換します:</p> +以下の例は、 `Number` を関数として用いて、{{jsxref("Date")}} オブジェクトを数値に変換します。 -<pre class="brush: js">let d = new Date('December 17, 1995 03:24:00') +```js +let d = new Date('December 17, 1995 03:24:00') console.log(Number(d)) -</pre> +``` -<p>これは、コンソールに "819199440000" を出力します。</p> +これは、コンソールに "819199440000" を出力します。 -<h3 id="Convert_numeric_strings_and_null_to_numbers">数字や null を数値に変換する</h3> +### 数字や null を数値に変換する -<pre class="brush: js">Number('123') // 123 -Number('123') === 123 /// true +```js +Number('123') // 123 +Number('123') === 123 // true Number('12.3') // 12.3 Number('12.00') // 12 Number('123e-1') // 12.3 @@ -153,32 +153,21 @@ Number('0b11') // 3 Number('0o11') // 9 Number('foo') // NaN Number('100a') // NaN -Number('-Infinity') //-Infinity</pre> - -<h2 id="Specifications">仕様書</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">仕様書</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#sec-number-objects', 'Number')}}</td> - </tr> - </tbody> -</table> - -<h2 id="Browser_compatibility">ブラウザーの互換性</h2> - -<p>{{Compat("javascript.builtins.Number")}}</p> - -<h2 id="See_also">関連情報</h2> - -<ul> - <li>{{jsxref("NaN")}}</li> - <li>{{jsxref("Arithmetic operators")}}</li> - <li>{{jsxref("Math")}} グローバルオブジェクト</li> - <li>任意の精度の整数型: {{jsxref("BigInt")}}</li> -</ul> +Number('-Infinity') // -Infinity +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- 最新の `Number` の動作(2 進数と 8 進数のリテラルに対応)のポリフィルは [`core-js`](https://github.com/zloirock/core-js#ecmascript-number) にあります +- {{jsxref("NaN")}} +- [算術演算子](/ja/docs/Web/JavaScript/Reference/Operators#arithmetic_operators) +- {{jsxref("Math")}} グローバルオブジェクト +- 任意の精度の整数型: {{jsxref("BigInt")}} |