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?