ich diesen Javascript-Code im Internet gefunden habe, aber ich kann nicht herausfinden, warum es eine unerwartete Zahl zeigt:Seltsam Javascript-Code zeigt falsche Nummer
var foo = 5;
var bar = 7;
fоo = bar;
bar += +!(foo - 5);
console.log(foo = bar); // It displays 8 instead of 7
Wie ich verstehe, ich definierte zwei Variablen foo
und bar
welche die Werte 5
bzw. 7
haben. Danach kopieren wir den Wert von bar
in foo
. In der vierten Zeile wird bar
nicht inkrementiert, weil +!(7 - 5) == +!2 == +false == 0
. In der letzten Zeile wird der Wert von bar
erneut in foo
kopiert und dann angezeigt, was bedeutet, dass foo
7
sein muss. Aber warum loggt die Konsole stattdessen 8
?