--- title: 厳密等価 (===) slug: Web/JavaScript/Reference/Operators/Strict_equality tags: - JavaScript - Language feature - Operator - Reference - 演算子 - 言語機能 translation_of: Web/JavaScript/Reference/Operators/Strict_equality ---
{{jsSidebar("Operators")}}

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

{{EmbedInteractiveExample("pages/js/expressions-strict-equality.html")}}

構文

x === y

解説

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

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

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

console.log("hello" === "hello");   // true
console.log("hello" === "hola");    // false

console.log(3 === 3);               // true
console.log(3 === 4);               // false

console.log(true === true);         // true
console.log(true === false);        // false

console.log(null === null);         // true

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

console.log("3" === 3);           // false

console.log(true === 1);          // false

console.log(null === undefined);  // false

オブジェクトの比較

const object1 = {
  name: "hello"
}

const object2 = {
  name: "hello"
}

console.log(object1 === object2);  // false
console.log(object1 === object1);  // true

仕様書

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

ブラウザーの互換性

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

関連情報