Empty Array Empty Array: Die Leerheitsverkettung
Wenn zwei leere Arrays hinzugefügt werden, konvertiert JavaScript diese zunächst in Grundelemente. In diesem Fall ist der Standardwert eines Arrays eine leere Zeichenfolge, sodass das Ergebnis die Verkettung zweier leerer Zeichenfolgen ist: eine leere Zeichenfolge.
Leeres Array-Objekt: Die Objektbereinigung
Das Konvertieren des leeren Arrays in ein Grundelement (leere Zeichenfolge) und des Objekts in ein Grundelement (seine Zeichenfolgendarstellung „[Objekt Objekt]“) führt zur Verkettung von eine leere Zeichenfolge und eine Objektdarstellung, was „[object Object]“ ergibt.
Object Empty Array: JavaScript's Unconventional Arithmetic
Im Gegensatz zum Video wird in der bereitgestellten JSFiddle das Ergebnis von {} [] ist [Object] statt 0. Diese Diskrepanz entsteht, weil der leere Block {} als Blockanweisung interpretiert wird, die als ausgewertet wird leer. Der unäre Operator wandelt den leeren Wert in eine Zahl um, was zu 0 führt. Da Sie ihn jedoch innerhalb eines Funktionsarguments verwenden, muss die Anweisung zwangsweise als Ausdrucksanweisung interpretiert werden. Dies führt dazu, dass {} als leeres Objektliteral statt als leerer Block geparst wird, was zu [Objekt] führt.
Objektobjekt: Eine nicht übereinstimmende Ausgabe
Das Ergebnis of {} {} sollte „object Object“ sein, aber die JSFiddle zeigt ein anderes Ergebnis. Diese Diskrepanz ist wahrscheinlich auf das implementierte spezifische Verhalten von JavaScript zurückzuführen, bei dem das Ergebnis des Hinzufügens von zwei Objekten zu einer Zeichenfolge variieren kann.
Array(16).join("wat" - 1): NaN Propagation
Die Eingabezeichenfolge für diesen Ausdruck ist „NaN-1“, was NaN ergibt. Wenn JavaScript versucht, „NaN“ mit den leeren String-Elementen des Arrays zu verketten, ist das Ergebnis gemäß dem Verkettungsalgorithmus immer NaN.
„wat“ 1 vs. „wat“ – 1: Der String vs . Zahlenkonvertierung
In „wat“ 1 konvertiert JavaScript 1 in eine Zeichenfolge, was zu „wat1“ führt. Andererseits wird in „wat“ - 1 versucht, „wat“ in eine Zahl umzuwandeln, was zu NaN führt. Da der Verkettungsoperator als erstes Argument eine Zeichenfolge erfordert, wird NaN wieder in eine Zeichenfolge umgewandelt, was dazu führt, dass „NaN“ wiederholt wird.
Das obige ist der detaillierte Inhalt vonWarum führt JavaScript zu unerwarteten Ergebnissen bei der Verkettung und Arithmetik von Zeichenfolgen und Zahlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!