Beginnen wir mit zwei Fragen:
Die erste Frage ist, warum a && b true zurückgibt und b && a 6 zurückgibt
1 var user = 6;2 var both = true;3 4 console.log( user && both); //true5 console.log( both && user); //6
Die zweite Frage führen beide eine Selbstdekrementierung durch, und der endgültige gedruckte Wert ist immer noch 3
1 var user = false;2 var both = 3;3 4 console.log( user && both--); // false5 console.log(both); // 3
Lassen Sie es uns auf drei Ebenen verstehen (am Beispiel von &&):
Verstehen der ersten Ebene: Die Operanden sind alle boolesche Werte, das Ergebnis ist nur wahr, wenn beide wahr sind, andernfalls ist es falsch.
Verstehen der zweiten Ebene: && kann mit wahren Werten und falschen Werten arbeiten. Wenn beide Werte wahr sind, wird ein wahrer Wert zurückgegeben, andernfalls wird ein falscher Wert zurückgegeben. Wahre Werte sind jedoch nicht auf wahr beschränkt, und falsche Werte sind nicht auf falsch beschränkt. Die folgenden Werte werden in falsch umgewandelt (alle anderen Werte sind wahr)
undefiniert
null
0/-0
NaN
" "
In js lautet das Ergebnis bei der &&-Operation Nicht immer wahr oder falsch, sondern der aktuelle Wert. Der aktuelle Wert kann ein numerischer Wert, eine Zeichenfolge usw. sein.
Wenn der erste Ausdruck wahr ist, wird der Wert des zweiten Ausdrucks als Ergebnis verwendet. Dieses Ergebnis ist nicht der konvertierte Wert, sondern dieser.
Wenn der erste Ausdruck falsch ist, wird der Wert des ersten Ausdrucks als Ergebnis verwendet. Dieses Ergebnis ist nicht der konvertierte Wert, sondern selbst.
user = 6 both = math = 0 console.log( user && both); console.log( both && user); console.log( both && math); console.log( math && both);
Die dritte Ebene des Verständnisses: Kurzschlussoperation, der Operationsprozess, berechnet zuerst den Wert des linken Operanden. Wenn das Berechnungsergebnis ein falscher Wert ist, dann ist das Ergebnis der gesamte Ausdruck ein falscher Wert, d. h. der Wert des linken Operanden stoppt auch die Auswertung des rechten Operanden. Wenn das Ergebnis des linken Operanden wahr ist, hängt das gesamte Ergebnis vom Wert des rechten Operanden ab.
Erklärung zur Kurzschlussoperation:
Wenn bei &&- und ||-Operationen der Wert des ersten Ausdrucks bereits das Ergebnis der gesamten Operation bestimmen kann, wird dies der Fall sein nicht ausgeführt werden
Für die &&-Operation ist der Wert des ersten Ausdrucks falsch, was bestimmt, dass das gesamte Operationsergebnis falsch ist, sodass der erste Ausdruck nicht ausgeführt wird, also wird y-- nicht ausgeführt. Der Wert von y ist immer noch 3
x = y = 3 console.log(x && y--); console.log(y);
Für ||,
Wenn der Wert des ersten Ausdrucks wahr ist, ist das Ergebnis der Wert des ersten Ausdrucks, nicht Nach der Konvertierung, es ist es selbst.
Wenn der erste Ausdruck „falsch“ ergibt, ist das Ergebnis der Wert des zweiten Ausdrucks, nicht nach der Konvertierung, sondern selbst.
1 var user = true;2 var both = 10;3 4 console.log(user || ++both); //true5 console.log(both); //10
&& hat genau das gleiche Prinzip wie ||, aber die Operationsregeln sind unterschiedlich.
1 var a = 10;2 var b = true;3 var c = 0;4 5 console.log(a || b); //106 console.log(b || a); //true7 8 console.log(b || c); //true9 console.log(c || b); //true
Das obige ist der detaillierte Inhalt vonVertiefendes Verständnis von && und || Beispielen in js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!