Logisch oder (||)
var result = true || FALSCH;
Ähnlich wie bei Logik und Operationen gibt es einen Operanden, der kein boolescher ist, Logik oder nicht unbedingt einen Booleschen zurückgibt. Zu diesem Zeitpunkt folgt es den folgenden Regeln:
□ Wenn der erste Operand ein Objekt ist, wird der erste Operand zurückgegeben.
□ Wenn der erste Operand auf False bewertet wird, wird der zweite Operand zurückgegeben.
□ Wenn beide Operanden Objekte sind, wird der erste Operand zurückgegeben.
□ Wenn beide Operanden null sind, geben Sie NULL zurück
□ Wenn beide undefiniert sind, kehren Sie undefiniert zurück.
□ Wenn beide NAN sind, geben Sie NAN zurück
Der Unterschied zwischen "===" und "=="
Gleichstellungsoperator (==)
Der gleiche Operator wandelt die Betriebswerte implizit um und vergleichen sie:
Wenn ein Betriebswert ein Boolescher ist, wird er vor dem Vergleich in einen numerischen Wert umgewandelt
Wenn ein Betriebswert eine Zeichenfolge ist und der andere Betriebswert ein numerischer Wert ist, wird die Zeichenfolge über die Funktion number () in einen numerischen Wert konvertiert
Wenn ein Betriebswert ein Objekt ist und das andere nicht, wird die ValueOF () -Methode des Objekts aufgerufen und das Ergebnis nach den vorherigen Regeln verglichen
Null und undefiniert sind gleich
Wenn ein Betriebswert NAN ist, gibt der gleiche Vergleich falsch zurück
Wenn beide Betriebswerte Objekte sind, vergleichen Sie, ob sie mit demselben Objekt verweisen. Wenn beide Operanden auf dasselbe Objekt verweisen, gibt der gleiche Operator true zurück, da ansonsten false zurückgegeben werden
Das Folgende wird getrennt erklärt:
Lassen Sie uns über === sprechen, das ist relativ einfach. Die folgenden Regeln werden verwendet, um festzustellen, ob die beiden Werte === gleich sind:
1. Wenn die Typen unterschiedlich sind, sind sie [ungleich]
2. Wenn beide numerische Werte sind und den gleichen Wert sind, dann [gleich]; (! Ausnahme) ist, wenn mindestens einer von ihnen Nan ist, dann [nicht gleich]. (Um festzustellen, ob ein Wert NAN ist, können Sie nur ISNan () verwenden, um zu beurteilen)
3. Wenn beide Saiten sind und die Zeichen in jeder Position gleich sind, dann [Gleichheit]; ansonsten [nicht gleich].
4. Wenn beide Werte wahr sind oder beides falsch sind, dann [gleich].
5. Wenn beide Werte auf das gleiche Objekt oder dieselbe Funktion beziehen, dann [Gleichheit]; ansonsten [nicht gleich].
6. Wenn beide Werte null sind oder beides undefiniert sind, dann [gleich].
Lassen Sie uns nach den folgenden Regeln über == sprechen:
1. Wenn die beiden Werttypen gleich sind, make === Vergleich.
2. Wenn die beiden Werttypen unterschiedlich sind, können sie gleich sein. Die Typumwandlung wird gemäß den folgenden Regeln durchgeführt und dann verglichen:
A. Wenn einer null ist und der andere undefiniert ist, dann [gleich].
B. Wenn einer eine Zeichenfolge ist und der andere ein numerischer Wert ist, konvertieren Sie die Zeichenfolge in einen numerischen Wert und vergleichen Sie ihn.
C. Wenn ein Wert wahr ist, konvertieren Sie ihn in 1 und vergleichen Sie ihn. Wenn ein Wert falsch ist, konvertieren Sie ihn in 0 und vergleichen Sie ihn.
D. Wenn eines ein Objekt und der andere ein numerischer oder Zeichenfolge ist, konvertieren Sie das Objekt in einen Wert des Basistyps und vergleichen Sie es dann. Konvertieren Sie ein Objekt in einen Basistyp und verwenden Sie die Methode zum ToString oder der Wertung. Die integrierte JS-Kernklasse wird versuchen, vor dem ToString zu schätzen. Die Ausnahme ist Datum, bei dem die ToString Conversion verwendet wird. Nicht-JS-Kernobjekt, sagen wir (es ist problematischer, ich verstehe nicht viel)
e. Jede andere Kombination ist [ungleich].
Ausdruckswert Ausdruckswert
null == undefinedTrueTrue == 1True
"Nan" == nanfalse $ null == 0False
false == 0Truenan! = Nangrue
Kurz gesagt, "==" erfordert nur gleiche Werte. "===" erfordert, dass Wert und Typ gleich sind.
Die Informationen stammen aus JavaScript Advanced Programing, die später aussortiert und aktualisiert werden