5647 Stimmen

Welcher Gleichheitsoperator (== vs ===) sollte in JavaScript-Vergleichen verwendet werden?

Ich benutze JSLint durch JavaScript zu gehen, und es werden viele Vorschläge zum Ersetzen von == (zwei Gleichheitszeichen) mit === (drei Gleichheitszeichen), wenn Sie z. B. Folgendes vergleichen idSele_UNVEHtype.value.length == 0 innerhalb eines if Erklärung.

Gibt es einen Leistungsvorteil durch den Austausch von == con === ?

Da es viele Vergleichsoperatoren gibt, wäre jede Leistungsverbesserung zu begrüßen.

Wenn keine Typkonvertierung stattfindet, gibt es dann einen Leistungsgewinn gegenüber == ?

11voto

Akshay Khale Punkte 7669

Das Javascript ist ein schwach typisierte Sprache d.h. ohne Datentypen wie in C, C++, z.B. int, boolean, float usw., so dass eine Variable jeden Werttyp enthalten kann, weshalb es diese speziellen Vergleichsoperatoren gibt

Zum Beispiel

var i = 20;var j = "20";

Wenn wir Vergleichsoperatoren anwenden, werden diese Variablen wie folgt aussehen

i==j //result is true

o

j != i//result is false

dafür brauchen wir einen speziellen Vergleichsoperator, der die Wert als auch für den Datentyp der Variablen

wenn wir

i===j //result is false

11voto

Sharad Kale Punkte 923

== Operator vergleicht nur die Werte, nicht den Datentyp.

=== Operator vergleichen die Werte mit dem Vergleich ihres Datentyps.

z.B. :

1 == "1" //true

1 === "1" //false

Dieser Operator ( "===" ), die in Sprachen verwendet werden, die einen automatischen Typ-Cast durchführen, z. B. PHP, Javascript.
"===" Operator hilft, unerwartete Vergleiche zu vermeiden, die durch automatische Typisierung verursacht werden.

0 Stimmen

Für '==' ist der Datentyp nicht wichtig

0 Stimmen

@mrmr68 Der Typ der Operanden der Funktion Abstrakter Gleichheitsvergleich es sehr wichtig - er wird verwendet, um die Operanden in andere Typen zu zwingen, damit sie verglichen werden können.

8voto

Verschiedene Zwischen = , = = , = = =

  • = Operator Verwendet, um einfach die value .
  • = = Operator Verwendet, um nur den Vergleich der values ノット datatype
  • = = = Operator für den Vergleich der values wie auch datatype .

7voto

Alexandr Punkte 4942

immer verwenden ' \=== ' und Sie werden tausende von Fehlern vermeiden. heutzutage mit dreifach Gleichheit wird von verschiedenen Styleguides bevorzugt, weil sie unter Berücksichtigung des Typs der Operanden vergleicht.

5voto

Dmitri Pavlutin Punkte 16320

Ja, es gibt einen großen Unterschied zwischen Gleichheit == und Identität === Betreiber.
Normalerweise ist der Identitätsoperator schneller, da keine Typumwandlung erfolgt. Aber wenn die Werte vom gleichen Typ sind, werden Sie keinen Unterschied feststellen.
Siehe meinen Beitrag Die Legende des JavaScript-Gleichheitsoperators in dem die Einzelheiten, einschließlich der Algorithmen zur Typumwandlung und zum Vergleich, mit vielen Beispielen erläutert werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X