JavaScript「==」と「===」の違い

小云云
小云云オリジナル
2018-03-19 09:42:101207ブラウズ

JavaScriptの比較演算子としては「==」がよく使われますが、両者の違いは何でしょうか?

=== は同一性を意味し、最初に両側の変数のデータ型が等しいかどうかを比較し、次に両側の変数の値が等しいかどうかを比較します。 == は等しいことを意味し、かどうかを比較することのみを意味します。両側の変数の値は等しいです。

の違い:

==、両側の値の型が異なる場合、最初に型変換を実行してから比較する必要があります。
==、型変換は行われません。異なる型は等価であってはなりません。

以下については別途説明します:

まず「===」について説明します。これは比較的簡単です。 2 つの値が === 等しいかどうかを判断するには、次のルールが使用されます:

1. 型が異なる場合、それらは等しくありません

2. 両方が数値であり、同じ値である場合、 then [等しい]; (!例外) 少なくとも 1 つが NaN の場合、[等しくない] になります。 (値が NaN であるかどうかを判断するには、isNaN() を使用するだけです)

3. 両方が文字列であり、各位置の文字が同じである場合、それらは等しくなります。それ以外の場合、それらは等しくありません。

4. 両方の値が true または両方が false の場合、それらは等しいです。

5. 2 つの値が同じオブジェクトまたは関数を参照している場合、それらは等しくありません。

6. 両方の値が null または両方が未定義の場合、それらは等しいです。
「==」について話しましょう
2 つの値の型が異なる場合、それらは等しい可能性があります。型変換を実行し、次のルールに従って比較します:

a. 一方が null で、もう一方が未定義の場合、それらは等しいです。

b. 一方が文字列でもう一方が数値の場合、文字列を数値に変換して比較します。

c. いずれかの値が true の場合は 1 に変換して比較し、いずれかの値が false の場合は 0 に変換して比較します。

d. 一方がオブジェクトで、もう一方が数値または文字列の場合、オブジェクトを基本型の値に変換して比較します。オブジェクトは、toString メソッドまたは valueOf メソッドを使用して基本型に変換されます。 js コアの組み込みクラスは toString;

e の前に valueOf を試行します。他の組み合わせは等しくありません。

概要:

つまり、「==」は値間の比較であり、「===」は値間の比較であるだけでなく、一般に When の型間の比較でもあります。プロジェクトを実行する場合、さまざまなビジネスに基づいてどれを使用するかを決定します。ほとんどの開発者は厳密ではない「==」に慣れています。

関連する推奨事項:

JavaScript の二重等号 (==) の詳細な説明。変換メカニズム

JavaScript の if と switch、== と === の違いと関連性の詳細な説明

PHP の == 演算子の文字列比較の使用法とその副作用の詳細な説明


以上がJavaScript「==」と「===」の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。