molily: Schneller Check, ob array und/oder HTMLCollection/NodeList/Args

Beitrag lesen

Hallo,

was genau hast du vor?

JavaScript ist keine Sprache, in der Typen wichtig sind. Duck Typing ist die Regel. Man fragt i.d.R. nicht ab, ob ein Wert einen gewissen Typ hat, sondern fragt, ob er das bietet, was man will. Wenn er nicht brauchbar ist, dann beendet sich die Verarbeitung einfach oder wirft Exceptions.

Üblicherweise bedient man sich dem genannten Object.prototype.toString (interne [[Class]]-Eigenschaft) oder instanceof bzw. constructor, um den Typ herauszufinden. Klar, damit kannst du experimentieren. Ich kann dazu nur sagen, dass ich das noch nie gebraucht habe und davon auch abrate. Duck Typing ist das genaue Gegenteil und funktioniert in der Praxis genauso gut.

Damit ein Wert als Liste iterierbar ist, braucht es eine length-Eigenschaft vom Typ Number und ggf. Eigenschaften [0], [1] usw. Das dürfte zumeist ausreichen. Wenn man deiner Funktion, die eine Liste erwartet, einen String übergibt, so hat der Aufrufende halt Pech. So oder so wird man eine Typabfrage irreführen können, zumindest in einigen Browsern. Daher sehe ich wenig Sinn darin, ohne konkreten Anwendungsfall damit zu kämpfen.

Mathias