ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript で位相が等しいかどうかを判断する方法

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

青灯夜游
青灯夜游オリジナル
2022-02-23 18:57:513490ブラウズ

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 サイトの他の関連記事を参照してください。

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