From 7828fa84ce9aaaa0d6d079ac71889d738249e8d6 Mon Sep 17 00:00:00 2001 From: x270 <42441861+x270@users.noreply.github.com> Date: Sat, 24 Apr 2021 11:11:45 +0900 Subject: 等価性の比較と同一性 を修正 (#551) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 「== による緩い等価性」の項について。 ・三重等号の表記が崩れていたのを修正。また、同じ文中の表記を併せて修正。 ・同項の表の次の段落について、codeタグによるハイライト箇所を英語版と統一。 (単なる文章中もcodeタグが有効であったため) --- files/ja/web/javascript/equality_comparisons_and_sameness/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'files/ja/web/javascript') diff --git a/files/ja/web/javascript/equality_comparisons_and_sameness/index.html b/files/ja/web/javascript/equality_comparisons_and_sameness/index.html index 036d257be1..efba4d7776 100644 --- a/files/ja/web/javascript/equality_comparisons_and_sameness/index.html +++ b/files/ja/web/javascript/equality_comparisons_and_sameness/index.html @@ -70,7 +70,7 @@ console.log(obj === undefined); // false
==
による緩い等価性緩い等価性は、両方の値を共通の型に変換した後で、2 つの値が等しいか比較します。(片方あるいは両方の変換が行われた) 変換処理後に、最終的な等価性の比較は =
==
と全く同じ振る舞いです。緩い等価性は対称的であり、任意の値 A
および B
において、A == B
と B == A
の意味は常に同じ意味です (変換処理を適用する順序を除く)。
緩い等価性は、両方の値を共通の型に変換した後で、2 つの値が等しいか比較します。(片方あるいは両方の変換が行われた) 変換処理後の、最終的な等価性の比較は ===
と全く同じ振る舞いです。緩い等価性は対称的であり、任意の値 A
および B
において、A == B
と B == A
の意味は常に同じです (変換処理を適用する順序を除く)。
等価性比較でさまざまな型のオペランドに対して以下のように振る舞います。
@@ -150,7 +150,7 @@ console.log(obj === undefined); // false -上の表で、ToNumber(A)
は、比較前に引数を数値に変換しようとします。この振る舞いは +A
(正の単項演算子) と同じです。ToPrimitive(A)
は、A の持つ
A.toString メソッド、そして
A.valueOf メソッドの変換シーケンスを実施することで、
オブジェクトの引数をプリミティブ値へ変換しようとを試みます。
上の表で、ToNumber(A)
は、比較前に引数を数値に変換しようとします。この振る舞いは +A
(正の単項演算子) と同じです。ToPrimitive(A)
は、A
の持つ A.toString
メソッド、そして A.valueOf
メソッドの変換シーケンスを実施することで、オブジェクトの引数をプリミティブ値へ変換しようとを試みます。
伝統的にも、また ECMAScript によれば、すべてのオブジェクトは undefined
や null
に対して大雑把には等価でないとしています。しかし、ほとんどのブラウザーは、ごく一部のオブジェクト (特に、あらゆるページの document.all
オブジェクト) が、いくつかの状況においては値 undefined
のように振る舞うことを認めています。緩い等価性もそのようなものの一つです、A が undefined
に相当するオブジェクトである場合に限り、null == A
および undefined == A
は true になります。それ以外のどのオブジェクトも undefined
および null
と大雑把には等価とはなりません。