Читать книгу JavaScript für Ungeduldige - Cay Horstmann - Страница 29
Vorsicht
ОглавлениеWie Sie gesehen haben, ist der Ausdruck x + y eine Zahl, wenn beide Operanden Zahlen sind, und ein String, wenn es sich bei mindestens einem Operanden um einen String handelt. In allen anderen Fällen sind die Regeln ziemlich kompliziert und die Ergebnisse nur selten sinnvoll. Entweder werden beide Operanden in Strings verwandelt und verkettet oder in Zahlen konvertiert und addiert. Beispielsweise wird der Ausdruck null + undefined zu der numerischen Addition 0 + NaN ausgewertet, die wiederum NaN ergibt (siehe Tabelle 1–1). Bei den anderen arithmetischen Operatoren wird nur eine Umwandlung in Zahlen versucht. So ergibt beispielweise 6 * '7' den Wert 42, da der String '7' in die Zahl 7 konvertiert wird.
Wert | Umwandlung in Zahl | Umwandlung in String |
Eine Zahl | Die Zahl selbst | Ein String aus den Ziffern dieser Zahl |
Ein String aus Ziffern, die eine Zahl bilden | Der Wert der Zahl | Der String selbst |
Der leere String '' | 0 | '' |
Jeder andere String | NaN | Der String selbst |
false | 0 | 'false' |
true | 1 | 'true' |
null | 0 | 'null' |
undefined | NaN | 'undefined' |
Das leere Array [] | 0 | '' |
Ein Array, das eine einzige Zahl enthält | Die Zahl | Ein String aus den Ziffern der Zahl |
Andere Arrays | NaN | Die Elemente, umgewandelt in Strings und durch Kommata getrennt, z. B. '1,2,3'. |
Objekte | Standardmäßig NaN, kann aber angepasst werden | Standardmäßig '[object Object]', kann aber angepasst werden. |
Tab. 1–1 Umwandlung in Zahlen und Strings