JavaScript で位相が等しいかどうかを判断する方法

青灯夜游
リリース: 2022-02-23 18:57:51
オリジナル
3404 人が閲覧しました

JavaScript で等しいかどうかを判断する方法: 1. 「==」または「!=」演算子を使用して、2 つのオペランドの値が等しいかどうかを比較します。2. 「===」または「!=」を使用します。 「! == 演算子は、2 つのオペランドの値が等しいかどうかを比較し、それらの型が同じかどうかを確認します。

JavaScript で位相が等しいかどうかを判断する方法

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

JavaScript は等価性を決定します

JavaScript では、==== を使用できます。 =、#!=、#!==等号か不等号かを判断する演算子

# #等号検出演算子 説明 ==(等しい) 2 つのオペランドの値が等しいかどうかを比較します != (待ちたくない) 2 つのオペランドの値が等しくないかどうかを比較します ===(一致) 2 つのオペランドの値が等しいかどうかを比較し、それらの型が同じかどうかを確認します 2 つの演算を比較する 数値の値が等しくないか、型が同じでないかどうか 等号演算では、次の点に注意する必要があります。 issues:
!== (一致していません)

オペランドがブール値の場合、最初に数値に変換され、false は 0 に変換され、true は 1 に変換されます。

  • 一方のオペランドが文字列で、もう一方のオペランドが数値の場合は、まず文字列を数値に変換してみます。

  • 一方のオペランドが文字列で、もう一方のオペランドがオブジェクトの場合は、最初にオブジェクトを文字列に変換してみます。

  • 一方のオペランドが数値で、もう一方のオペランドがオブジェクトの場合は、まずオブジェクトを数値に変換してみます。

  • 両方のオペランドがオブジェクトの場合、参照アドレスが比較されます。参照アドレスが同じであれば等しくなりますが、それ以外の場合は等しくありません。

  • #例 1

次に、特殊オペランドの等価比較を示します。

console.log("1" == 1); //返回true。字符串被转换为数字 console.log(true == 1); //返回true。true被转换为1 console.log(false == 0); //返回true。false被转换为0 console.log(null == 0); //返回false console.log(undefined == 0); //返回false console.log(undefined == null); //返回true console.log(NaN == "NaN"); //返回false console.log(NaN ==1); //返回false console.log(NaN == NaN); //返回false console.log(NaN != NaN); //返回true
ログイン後にコピー
NaN は、それ自体を含め、どの値とも等しくありません。 null 値と未定義値は同じですが、異なる種類のデータです。等価比較では、null と unknown を他の型の値に変換することはできません。

例 2

次の 2 つの変数の値は等しいです。

var a = "abc" + "d"; var b = "a" + "bcd"; console.log(a == b); //返回true
ログイン後にコピー
数値とブール値の等価比較演算は比較的効率的ですが、文字列は文字ごとに比較する必要があり、等価比較演算の効率は比較的低くなります。

合同演算では、次の問題に注意する必要があります。

両方のオペランドが単純な値の場合、値が同じで型が等しい限り、同じです、ちょうど等しいです。

  • 一方のオペランドが単純な値で、もう一方のオペランドが複合オブジェクトの場合、それらは一致しません。

  • 両方のオペランドが複合オブジェクトの場合、参照アドレスが同じかどうかを比較します。

  • 例 3

次は、特別なオペランドの一致比較です。

console.log(null === undefined); //返回false console.log(0 === "0"); //返回false console.log(0 === false); //返回false
ログイン後にコピー
例 4

次は 2 つのオブジェクトの比較ですが、両方とも同じアドレスを参照しているため、true が返されます。

var a = {}; var b = a; console.log(a === b); //返回true
ログイン後にコピー
次の 2 つのオブジェクトは同じ構造ですが、アドレスが異なるため、一致しません。
var a = {}; var b = {}; console.log(a === b); //返回false
ログイン後にコピー

例 5

複合オブジェクトの場合、主に参照アドレスが比較され、オブジェクトの値は比較されません。

var a = new String("abcd); //定义字符串“abcd”对象 var b = new String("abcd); //定义字符串“abcd”对象 console.log(a === b); //返回false console.log(a == b); //返回false
ログイン後にコピー
上の例では、2 つのオブジェクトの値は等しいですが、参照アドレスが異なるため、待機する必要もなく、等しくもありません。したがって、複合オブジェクトの場合、等価 == 演算と合同 === 演算の結果は同じになります。

例 6

単純な値の場合、型が同じで値が等しい限り、式の演算プロセスや変数の変更に関係なく、それらは一致します。 .参照アドレス。

var a = "1" + 1; var b = "11"; console.log(a ===b); //返回true
ログイン後にコピー
例 7

式 (a>b || a==b) は、式 (a>=b) と正確には等しくありません。

var a = 1; var b = 2; console.log((a > b || a == b) == (a >= b)); //返回true,此时似乎相等
ログイン後にコピー
変数 a と b にそれぞれ null と未定義が割り当てられている場合、戻り値 false は 2 つの式が完全に等価ではないことを示します。
var a = null; var b = undefined; console.log((a > b || a == b) == (a >= b)); //返回false,表达式的值并非相等
ログイン後にコピー

null == 未定義は true に等しいため、式 (a > b || a == b) の戻り値は true ですが、式の戻り値 null >= 未定義は誤りです。

[関連する推奨事項:

JavaScript 学習チュートリアル

]

以上がJavaScript で位相が等しいかどうかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!