From b492e1f57a059209ba801270375697e917f365f8 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Mon, 27 Sep 2021 23:03:04 +0900 Subject: JavaScript の等価演算子関係の文書を更新 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 2021/07/21 時点の英語版に同期 --- .../reference/operators/strict_equality/index.md | 116 +++++++++------------ 1 file changed, 52 insertions(+), 64 deletions(-) (limited to 'files/ja/web/javascript/reference/operators/strict_equality') diff --git a/files/ja/web/javascript/reference/operators/strict_equality/index.md b/files/ja/web/javascript/reference/operators/strict_equality/index.md index 436a6d0899..81ed20e794 100644 --- a/files/ja/web/javascript/reference/operators/strict_equality/index.md +++ b/files/ja/web/javascript/reference/operators/strict_equality/index.md @@ -3,50 +3,46 @@ title: 厳密等価 (===) slug: Web/JavaScript/Reference/Operators/Strict_equality tags: - JavaScript - - Language feature - - Operator - - Reference - - 演算子 - 言語機能 + - 演算子 + - Reference +browser-compat: javascript.operators.strict_equality translation_of: Web/JavaScript/Reference/Operators/Strict_equality --- -
{{jsSidebar("Operators")}}
- -

厳密等価演算子 (===) は、二つのオペランドが等しいことを検査し、論理値で結果を返します 等価演算子とは異なり、厳密等価演算子はオペランドの型が異なる場合、常に異なるものと判断します。

+{{jsSidebar("Operators")}} -
{{EmbedInteractiveExample("pages/js/expressions-strict-equality.html")}}
+厳密等価演算子 (`===`) は、二つのオペランドが等しいことを検査し、論理値で結果を返します。[等価](/ja/docs/Web/JavaScript/Reference/Operators/Equality)演算子とは異なり、厳密等価演算子はオペランドの型が異なる場合、常に異なるものと判断します。 - +{{EmbedInteractiveExample("pages/js/expressions-strict-equality.html")}} -

構文

+## 構文 -
x === y
+```js +x === y +``` -

解説

+## 解説 -

厳密等価演算子 (=== および !==) は、厳密等価比較アルゴリズムを使用して二つのオペランドを比較します。

+厳密等価演算子 (`===` および `!==`) は、[厳密等価比較アルゴリズム](https://www.ecma-international.org/ecma-262/5.1/#sec-11.9.6)を使用して 2 つのオペランドを比較します。 - +- オペランドの型が異なる場合は、 `false` を返します。 +- 両方のオペランドがオブジェクトである場合、同じオブジェクトを指している場合に限り `true` を返します。 +- 両方のオペランドが `null` または両方のオペランドが `undefined` であった場合は `true` を返します。 +- どちらかのオペランドが `NaN` であった場合は `false` を返します。 +- それ以外の場合は、2 つのオペランドの値を比較します。 -

この演算子と等価 (==) 演算子の最も顕著な違いは、オペランドの型が異なる場合、 == 演算子は比較前に同じ型に変換しようとすることです。

+ - 数値型は同じ値の数値である必要があります。 `+0` と `-0` は同じ値と見なされます。 + - 文字列型は同じ文字が同じ順序で並んでいる必要があります。 + - 論理型は両方が `true` であるか両方が `false` である必要があります。 + +この演算子と[等価](/ja/docs/Web/JavaScript/Reference/Operators/Equality) (`==`) 演算子の最も顕著な違いは、オペランドの型が異なる場合、 `==` 演算子は比較前に同じ型に変換しようとすることです。 -

+## 例 -

オペランドが同じ型である場合の比較

+### オペランドが同じ型である場合の比較 -
console.log("hello" === "hello");   // true
+```js
+console.log("hello" === "hello");   // true
 console.log("hello" === "hola");    // false
 
 console.log(3 === 3);               // true
@@ -55,19 +51,23 @@ console.log(3 === 4);               // false
 console.log(true === true);         // true
 console.log(true === false);        // false
 
-console.log(null === null);         // true
+console.log(null === null); // true +``` -

オペランドが異なる方である場合の比較

+### オペランドが異なる型である場合の比較 -
console.log("3" === 3);           // false
+```js
+console.log("3" === 3);           // false
 
 console.log(true === 1);          // false
 
-console.log(null === undefined);  // false
+console.log(null === undefined); // false +``` -

オブジェクトの比較

+### オブジェクトの比較 -
const object1 = {
+```js
+const object1 = {
   name: "hello"
 }
 
@@ -76,31 +76,19 @@ const object2 = {
 }
 
 console.log(object1 === object2);  // false
-console.log(object1 === object1);  // true
- -

仕様書

- - - - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#sec-equality-operators', 'Equality operators')}}
- -

ブラウザーの互換性

- -

{{Compat("javascript.operators.strict_inequality")}}

- -

関連情報

- - +console.log(object1 === object1); // true +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- [等価演算子](/ja/docs/Web/JavaScript/Reference/Operators/Equality) +- [不等価演算子](/ja/docs/Web/JavaScript/Reference/Operators/Inequality) +- [厳密不等価演算子](/ja/docs/Web/JavaScript/Reference/Operators/Strict_inequality) -- cgit v1.2.3-54-g00ecf