molily: Datentypen in Javascript

Beitrag lesen

Hallo,

Wo gibt es in JS ein boolean? Mit den primitiven Repräsentationen kommt man in JS ja überhaupt nicht in Berührung (ausser in der Schreibweise, wenn man so will).

Es gibt verschiedene Sprachfeatures, die nur durch die Unterscheidung zwischen Primitives und Objekten erklärt werden können. Objekte haben Identität, sind also nur selbstidentisch (obj === obj) und nicht identisch mit anderen Objekten. Primitives können mit anderen Primitives identisch sein ("foo" === "foo"). Es gibt definierte Wege, wie Objekte in Primitives umgewandelt werden (intern ToPrimitive, nach außen valueOf bzw. toString). Objekte werden per Referenz übergeben (bzw. by sharing), Primitives werden kopiert.

Aber hinter einem einfachem true/false steht auch ein Boolean-Objekt.

Jein. Erst in einem Kontext, der ein Objekt verlangt, werden sie in Objekte umgewandelt. Z.B. beim Property-Accessor-Operator.

Natürlich optimieren das die Engines ggf. weg, aber so ist es in der ECMAScript-Spezifikation definiert.

Mathias