diff options
author | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2022-01-11 09:35:15 +0900 |
---|---|---|
committer | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2022-01-17 23:52:45 +0900 |
commit | 502fabc4a8944968bee4fd120b45142fc6fb98fb (patch) | |
tree | 8fad9dd615fb6072c7e8af29e90741a39b44a170 /files/ja/web/javascript | |
parent | 60dbb0c3ee5f32431fb6b1e580197b7c546b1e3a (diff) | |
download | translated-content-502fabc4a8944968bee4fd120b45142fc6fb98fb.tar.gz translated-content-502fabc4a8944968bee4fd120b45142fc6fb98fb.tar.bz2 translated-content-502fabc4a8944968bee4fd120b45142fc6fb98fb.zip |
2021/07/21 時点の英語版に同期
Diffstat (limited to 'files/ja/web/javascript')
-rw-r--r-- | files/ja/web/javascript/reference/global_objects/number/isnan/index.md | 82 |
1 files changed, 36 insertions, 46 deletions
diff --git a/files/ja/web/javascript/reference/global_objects/number/isnan/index.md b/files/ja/web/javascript/reference/global_objects/number/isnan/index.md index 733a5c7ef9..54ad969401 100644 --- a/files/ja/web/javascript/reference/global_objects/number/isnan/index.md +++ b/files/ja/web/javascript/reference/global_objects/number/isnan/index.md @@ -7,42 +7,43 @@ tags: - メソッド - Number - isNaN + - ポリフィル +browser-compat: javascript.builtins.Number.isNaN translation_of: Web/JavaScript/Reference/Global_Objects/Number/isNaN --- -<div>{{JSRef}}</div> +{{JSRef}} -<p><strong><code>Number.isNaN()</code></strong> メソッドは、渡された値が {{jsxref("NaN")}} であり、かつその型が {{jsxref("Number")}} であるかどうかを判断します。元となるグローバルの {{jsxref("isNaN", "isNaN()")}} よりも堅牢な版です。</p> +**`Number.isNaN()`** メソッドは、渡された値が {{jsxref("NaN")}} であり、かつその型が {{jsxref("Number")}} であるかどうかを判断します。元となるグローバルの {{jsxref("isNaN", "isNaN()")}} よりも堅牢な版です。 -<div>{{EmbedInteractiveExample("pages/js/number-isnan.html", "taller")}}</div> +{{EmbedInteractiveExample("pages/js/number-isnan.html", "taller")}} -<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> +## 構文 -<h2 id="Syntax" name="Syntax">構文</h2> +```js +Number.isNaN(value) +``` -<pre class="syntaxbox notranslate">Number.isNaN(<var>value</var>)</pre> +### 引数 -<h3 id="Parameters" name="Parameters">引数</h3> +- `<var>value</var>` + - : {{jsxref("NaN")}} かどうかテストされる値です。 -<dl> - <dt><code><var>value</var></code></dt> - <dd>{{jsxref("NaN")}} かどうかテストされる値です。</dd> -</dl> +### 返値 -<h3 id="Return_value" name="Return_value">返値</h3> +与えられた値が {{jsxref("NaN")}} であり、かつその型が {{jsxref("Number")}} である場合は **true**、それ以外の場合は **false** です。 -<p>与えられた値が {{jsxref("NaN")}} であり、かつその型が {{jsxref("Number")}} である場合は <strong>true</strong>、それ以外の場合は <strong>false</strong> です。</p> +## 解説 -<h2 id="Description" name="Description">解説</h2> +{{jsxref("Operators", "==", "#Equality")}} と {{jsxref("Operators", "===", "#Identity")}} の等価演算子ではどちらも、 {{jsxref("NaN")}} が {{jsxref("NaN")}} であるかどうかを検査すると `false` と評価されてしまうため、 `Number.isNaN()` 関数が必要となります。この状況は、 JavaScript においてあり得る他のすべての値の比較と異なります。 -<p>{{jsxref("Operators/Comparison_Operators", "==", "#Equality")}} と {{jsxref("Operators/Comparison_Operators", "===", "#Identity")}} の等価演算子ではどちらも、 {{jsxref("Global_Objects/NaN", "NaN")}} が {{jsxref("Global_Objects/NaN", "NaN")}} <em>である</em>かどうかを検査すると <code>false</code> と評価されてしまうため、 <code>Number.isNaN()</code> 関数が必要となります。この状況は、 JavaScript においてあり得る他のすべての値の比較と異なります。</p> +グローバルの {{jsxref("isNaN", "isNaN()")}} 関数とは異なり、 `Number.isNaN()` は強制的に引数が数値に変換される問題の影響をうけません。これは、通常 {{jsxref("NaN")}} に変換されるが実際には {{jsxref("NaN")}} ではない値が、安全に渡されることを意味します。つまりこの関数は、数値型であり、かつ {{jsxref("NaN")}} である値が渡されたときのみ、 `true` を返すということです。 -<p>グローバルの {{jsxref("Global_Objects/isNaN", "isNaN()")}} 関数とは異なり、 <code>Number.isNaN()</code> は強制的に引数が数値に変換される問題の影響をうけません。これは、通常 {{jsxref("NaN")}} に変換されるが実際には {{jsxref("NaN")}} ではない値が、安全に渡されることを意味します。つまりこの関数は、数値型であり、かつ {{jsxref("NaN")}} である値が渡されたときのみ、 <code>true</code> を返すということです。</p> +## 例 -<h2 id="Examples" name="Examples">例</h2> +### isNaN の使用 -<h3 id="Using_isNaN" name="Using_isNaN">isNaN の使用</h3> - -<pre class="brush: js notranslate">Number.isNaN(NaN); // true +```js +Number.isNaN(NaN); // true Number.isNaN(Number.NaN); // true Number.isNaN(0 / 0); // true @@ -60,39 +61,28 @@ Number.isNaN('37'); Number.isNaN('37.37'); Number.isNaN(''); Number.isNaN(' '); -</pre> +``` -<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> +## ポリフィル -<p>以下の例が動作するのは、 NaN が JavaScript で唯一、自分自身と比較して等しくない値だからです。</p> +以下の例が動作するのは、 NaN が JavaScript で唯一、自分自身と比較して等しくない値だからです。 -<pre class="brush: js notranslate">Number.isNaN = Number.isNaN || function isNaN(input) { - return typeof input === 'number' && input !== input; +```js +Number.isNaN = Number.isNaN || function isNaN(input) { + return typeof input === 'number' && input !== input; } -</pre> +``` -<h2 id="Specifications" name="Specifications">仕様書</h2> +## 仕様書 -<table class="standard-table"> - <thead> - <tr> - <th scope="col">仕様書</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#sec-number.isnan', 'Number.isnan')}}</td> - </tr> - </tbody> -</table> +{{Specifications}} -<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> +## ブラウザーの互換性 -<div>{{Compat("javascript.builtins.Number.isNaN")}}</div> +{{Compat}} -<h2 id="See_also" name="See_also">関連情報</h2> +## 関連情報 -<ul> - <li>{{jsxref("Number")}}</li> - <li>{{jsxref("isNaN", "isNaN()")}}</li> -</ul> +- `Number.isNaN` のポリフィルは [`core-js`](https://github.com/zloirock/core-js#ecmascript-number) で利用できます +- {{jsxref("Number")}} +- {{jsxref("isNaN", "isNaN()")}} |