Automatische Typkonvertierung in JavaScript

Die folgenden Ausdrücke in JavaScript sind weitestgehend offensichtlich.

var x = 10 + 10;

Der Wert vonx ist20.

x = 10 + '10';

Der Wert vonx in diesem Fall ist1010 weil der+ Bediener ist überlastet. Wenn einer der Operanden vom Typ string ist, wird eine String-Verkettung durchgeführt, und wenn alle Operanden Zahlen sind, wird eine Addition durchgeführt.

x = 10 - 10;
x = 10 - '10';

In beiden Fällen ist der Wert vonx wird sein0 weil der- Der Operator wird auf diese Weise nicht überladen, und alle Operanden werden in Zahlen konvertiert, wenn sie nicht vor der eigentlichen Subtraktion vorliegen (Sie können klären, ob ich mich irre).

Was passiert im folgenden Ausdruck.

x = '100' - -'150';    

Der Wert vonx ist250. Was ebenfalls offensichtlich zu sein scheint, aber dieser Ausdruck scheint etwas dem folgenden Ausdruck zu entsprechen.

x = '100' +'150';

Wäre dies der Fall gewesen, wären diese beiden Zeichenfolgen verkettet und zugewiesen worden100150 zux. Warum wird also in diesem Fall eine Addition durchgeführt?

EDIT:

+'10' + 5 kehrt zurück15 und'a' + + 'b' kehrt zurückaNaN. Weiß jemand warum?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage