aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/javascript/reference/global_objects/object/is/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/ja/web/javascript/reference/global_objects/object/is/index.html')
-rw-r--r--files/ja/web/javascript/reference/global_objects/object/is/index.html125
1 files changed, 125 insertions, 0 deletions
diff --git a/files/ja/web/javascript/reference/global_objects/object/is/index.html b/files/ja/web/javascript/reference/global_objects/object/is/index.html
new file mode 100644
index 0000000000..ab871c5ab4
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/object/is/index.html
@@ -0,0 +1,125 @@
+---
+title: Object.is()
+slug: Web/JavaScript/Reference/Global_Objects/Object/is
+tags:
+ - Comparison
+ - Condition
+ - Conditional
+ - ECMAScript 2015
+ - Equality
+ - JavaScript
+ - Method
+ - Object
+translation_of: Web/JavaScript/Reference/Global_Objects/Object/is
+---
+<div>{{JSRef}}</div>
+
+<p><strong><code>Object.is()</code></strong> メソッドは 2 つの値が<a href="/ja/docs/Web/JavaScript/Equality_comparisons_and_sameness">同一値</a>であるかどうかを判定します。</p>
+
+<h2 id="Syntax" name="Syntax">構文</h2>
+
+<pre class="syntaxbox notranslate"><code>Object.is(<var>value1</var>, <var>value2</var>);</code></pre>
+
+<h3 id="Parameters" name="Parameters">引数</h3>
+
+<dl>
+ <dt><code><var>value1</var></code></dt>
+ <dd>比較する 1 つ目の値。</dd>
+ <dt><code><var>value2</var></code></dt>
+ <dd>比較する 2 つ目の値。</dd>
+</dl>
+
+<h3 id="Return_value" name="Return_value">返値</h3>
+
+<p>{{jsxref("Boolean")}} で、 2 つの引数が同一値であるかどうかを表します。</p>
+
+<h2 id="Description" name="Description">解説</h2>
+
+<p><code>Object.is()</code> は 2 つの値が<a href="/ja/docs/Web/JavaScript/Equality_comparisons_and_sameness">同一値</a>であるかどうかを判定します。2 つの値が以下の規則の一つに当てはまる場合に同一となります。</p>
+
+<ul>
+ <li>どちらも {{jsxref("undefined")}}</li>
+ <li>どちらも {{jsxref("null")}}</li>
+ <li>どちらも <code>true</code> かどちらも <code>false</code></li>
+ <li>どちらも同じ文字からなる同じ長さの文字列</li>
+ <li>どちらも同じオブジェクト</li>
+ <li>どちらも数で、
+ <ul>
+ <li>どちらも <code>+0</code></li>
+ <li>どちらも <code>-0</code></li>
+ <li>どちらも {{jsxref("NaN")}}</li>
+ <li>あるいはどちらもゼロ以外で {{jsxref("NaN")}} でなく、同じ数値を持つ</li>
+ </ul>
+ </li>
+</ul>
+
+<p>このメソッドは {{jsxref("Operators/Comparison_Operators", "==", "#Equality")}} 演算子による等値比較と同じものでは<strong>ありません</strong>。 <code>==</code> 演算子は等値性比較の前に (同じ型でなければ) 両辺に対して様々な型変換を適用します (結果、例えば <code>"" == false</code> は <code>true</code> に評価されます) が、<code>Object.is</code> は両辺どちらの値にも型変換を行いません。</p>
+
+<p>また {{jsxref("Operators/Comparison_Operators", "===", "#Identity")}} 演算子による同値比較とも同じものでも<strong>ありません</strong>。 <code>===</code> 演算子は (そして <code>==</code> 演算子も) 数値 <code>-0</code> と <code>+0</code> は同じものとして扱い、 {{jsxref("Number.NaN")}} と {{jsxref("NaN")}} は異なるものとして扱います。</p>
+
+<h2 id="Examples" name="Examples">例</h2>
+
+<h3 id="Using_Object.is" name="Using_Object.is">Object.is の使用</h3>
+
+<pre class="brush: js notranslate">Object.is('foo', 'foo'); // true
+Object.is(window, window); // true
+
+Object.is('foo', 'bar'); // false
+Object.is([], []); // false
+
+var foo = { a: 1 };
+var bar = { a: 1 };
+Object.is(foo, foo); // true
+Object.is(foo, bar); // false
+
+Object.is(null, null); // true
+
+// 特殊なケース
+Object.is(0, -0); // false
+Object.is(-0, -0); // true
+Object.is(NaN, 0/0); // true
+</pre>
+
+<h2 id="Polyfill" name="Polyfill">ポリフィル</h2>
+
+<pre class="brush: js notranslate">if (!Object.is) {
+  Object.defineProperty(Object, "is", {
+  value: function (x, y) {
+ // 同値アルゴリズム
+ if (x === y) { // ステップ 1 から 5、および 7 から 10
+ // ステップ 6.b から 6.e までの場合: +0 != -0
+ return x !== 0 || 1 / x === 1 / y;
+ } else {
+ // ステップ 6.a の場合: NaN == NaN
+ return x !== x &amp;&amp; y !== y;
+ }
+  }
+ });
+}</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-object.is', 'Object.is')}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
+
+<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div>
+
+<p>{{Compat("javascript.builtins.Object.is")}}</p>
+
+<h2 id="See_also" name="See_also">関連情報</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/JavaScript/Equality_comparisons_and_sameness">等値比較と同一性</a> — 標準搭載されている 3 つの同一性比較支援機能の比較</li>
+</ul>