Alles in JS ist ein Objekt. Das habe ich immer gewusst, und das verstehe ich vollkommen. Ich weiß warum {} !== {}
. Es sind zwei verschiedene Objekte. So, als würdest du new Object() == new Object()
schreiben.
Einige andere Beispiele:
%Vor% Aber Strings sind auch Objekte (deshalb kannst du ''.replace()
machen und sie erweitern), also warum funktioniert das?
Es wäre natürlich sehr schwierig, zwei Strings zu vergleichen, wenn das nicht funktioniert, aber das scheint nicht mit dem Rest der Sprache zu stimmen. Intern, was ist los? Ist es nur ein einmaliges oder gibt es ein anderes Konzept dahinter?
JavaScript behandelt Strings und Zahlen im Grunde immer als Skalare, konvertiert sie in Objekte, wenn eine Methode aufgerufen wird, und konvertiert sie zurück, wenn Sie new String("");
Gleich mit Zahlen.
Ohne die Gleichheit von String / Zahl / Boolean würde es dir schwer fallen, vieles zu tun.
Es gibt fünf primitive Typen in JavaScript: Number, String, Boolean, Undefined und Null. Das Vergleichen des leeren String-Literals ""
mit sich selbst unterscheidet sich nicht von dem Vergleich 5 === 5
.
Tags und Links javascript ecmascript-5