Heim  >  Artikel  >  Web-Frontend  >  So ermitteln Sie, ob eine Phase in JavaScript gleich ist

So ermitteln Sie, ob eine Phase in JavaScript gleich ist

青灯夜游
青灯夜游Original
2022-02-23 18:57:513491Durchsuche

So ermitteln Sie die Gleichheit in JavaScript: 1. Verwenden Sie den Operator „==“ oder „!==", um zu vergleichen, ob die Werte der beiden Operanden gleich sind. 2. Verwenden Sie den Operator „===" oder „!“; ==" Operatorsymbol, vergleicht, ob die Werte der beiden Operanden gleich sind, und prüft, ob ihre Typen gleich sind.

So ermitteln Sie, ob eine Phase in JavaScript gleich ist

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.

JavaScript bestimmt Gleichheit

In JavaScript können Sie den Operator =====!=!== verwenden, um Gleichheit oder Ungleichheit zu bestimmen == (Gleichheit)

Vergleichen ob die Werte der beiden Operanden gleich sindBei der Gleichheitsoperation sollten Sie auf die folgenden Punkte achten: Wenn der Operand ein boolescher Wert ist, wird er zuerst in einen numerischen Wert konvertiert , wobei false in 0 und true in 1 konvertiert wird. Wenn ein Operand eine Zeichenfolge und der andere Operand eine Zahl ist, versuchen Sie zunächst, die Zeichenfolge in eine Zahl umzuwandeln.
!= (ich möchte nicht warten) Vergleichen Sie, ob die Werte der beiden Operanden nicht gleich sind
=== (Kongruent) Vergleichen Sie die beiden Ob die Werte der beiden Operanden gleich sind, und prüfen Sie, ob ihre Typen gleich sind
!== (nicht kongruent) Vergleichen Sie, ob die Werte der beiden Operanden nicht übereinstimmen gleich, und prüfen Sie, ob ihre Typen nicht gleich sind

Wenn ein Operand eine Zeichenfolge und der andere Operand ein Objekt ist, versuchen Sie zunächst, das Objekt in eine Zeichenfolge umzuwandeln.

  • Wenn ein Operand eine Zahl und der andere Operand ein Objekt ist, versuchen Sie zunächst, das Objekt in eine Zahl umzuwandeln.

  • Wenn beide Operanden Objekte sind, vergleichen Sie die Referenzadressen. Wenn die Referenzadressen gleich sind, sind sie gleich; andernfalls sind sie nicht gleich.

  • Beispiel 1
  • Das Folgende ist ein Gleichheitsvergleich spezieller Operanden.

    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 ​​​​ist keinem Wert gleich, auch nicht sich selbst. Der Null- und der undefinierte Wert sind gleich, es handelt sich jedoch um unterschiedliche Datentypen. Bei Gleichheitsvergleichen dürfen null und undefiniert nicht in Werte anderer Typen konvertiert werden.
  • Beispiel 2

Die Werte der folgenden beiden Variablen sind gleich.

var a = "abc" + "d";
var b = "a" + "bcd";
console.log(a == b);  //返回true
Die Gleichheitsvergleichsoperation von numerischen und booleschen Werten ist relativ effizient, während Zeichenfolgen zeichenweise verglichen werden müssen und die Effizienz der Gleichheitsvergleichsoperation relativ gering ist.

Bei Kongruenzoperationen sollten Sie auf folgende Punkte achten:

Wenn beide Operanden einfache Werte sind, dann sind sie kongruent, solange die Werte gleich und die Typen gleich sind.

Wenn ein Operand ein einfacher Wert und der andere Operand ein zusammengesetztes Objekt ist, sind sie nicht kongruent.

Wenn beide Operanden zusammengesetzte Objekte sind, vergleichen Sie, ob die Referenzadressen gleich sind.

  • Beispiel 3
  • Das Folgende ist ein kongruenter Vergleich spezieller Operanden.

    console.log(null === undefined);  //返回false
    console.log(0 === "0");  //返回false
    console.log(0 === false);  //返回false
  • Beispiel 4

  • Das Folgende ist ein Vergleich zweier Objekte, der „true“ zurückgibt, da beide auf dieselbe Adresse verweisen.
var a = {};
var b = a;
console.log(a === b);  //返回true

Obwohl die folgenden beiden Objekte die gleiche Struktur haben, haben sie unterschiedliche Adressen und sind daher nicht deckungsgleich.

var a = {};
var b = {};
console.log(a === b);  //返回false

Beispiel 5

Bei zusammengesetzten Objekten wird hauptsächlich die Adresse der Referenz verglichen, der Wert des Objekts wird jedoch nicht verglichen.

var a = new String("abcd);  //定义字符串“abcd”对象
var b = new String("abcd);  //定义字符串“abcd”对象
console.log(a === b);  //返回false
console.log(a == b);  //返回false
Im obigen Beispiel sind die Werte der beiden Objekte gleich, aber die Referenzadressen sind unterschiedlich, sodass sie weder warten wollen noch gleich sind. Daher sind für zusammengesetzte Objekte die Ergebnisse der Operationen Gleichheit == und Kongruenz === gleich.

Beispiel 6

Bei einfachen Werten sind sie kongruent, solange sie denselben Typ und gleiche Werte haben, unabhängig von den Prozessänderungen der Ausdrucksoperation oder der Referenzadresse der Variablen.

var a = "1" + 1;
var b = "11";
console.log(a ===b);  //返回true

Beispiel 7

Der Ausdruck (a>b || a==b) ist nicht genau gleich dem Ausdruck (a>=b).

var a = 1;
var b = 2;
console.log((a > b || a == b) == (a >= b));  //返回true,此时似乎相等

Wenn den Variablen a und b null und undefiniert zugewiesen werden, wird der Wert false zurückgegeben, was darauf hinweist, dass die beiden Ausdrücke nicht vollständig äquivalent sind.

var a = null;
var b = undefined;
console.log((a > b || a == b) == (a >= b));  //返回false,表达式的值并非相等
Da null == undefiniert gleich wahr ist, ist der Rückgabewert des Ausdrucks (a > b || a == b) wahr, aber der Rückgabewert des Ausdrucks null >= undefiniert ist falsch.

【Verwandte Empfehlungen:

Javascript-Lern-Tutorial

Das obige ist der detaillierte Inhalt vonSo ermitteln Sie, ob eine Phase in JavaScript gleich ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn