hi,
Wieso macht es Sinn, alle u.g. Möglichkeiten mit einzuschließen, um die es eigentlich garnicht geht. Eine prinzipielle Fehlerquelle die unnötig ist.
Diese Frage lässt sich nur für den jeweiligen Anwendungsfall klären und nicht pauschal.
Der Anwendungsfall wäre: wenn $a entweder ein Objekt ist (kann auch leer sein) oder ein String mit mindestens einem Zeichen oder eine Zahl ungleich 0 oder ein Array (darf aber nicht leer sein).
Und die Zusammenfassung auf "==" bietet eben nicht die detailierte Info (Ich glaube das ist genau das Argument von Crockford). O.g. muss ich als Leser und/oder Autor wissen, im Zweifelsfalle erhöht eben das einzelne Abtesten der o.g. Alternativen die Lesbarkeit, denn der Leser kann verunsichert werden, weil er u.U. nicht genau weiß ob a) alle o.g. vier Alternativen mit zwei Besonderheiten wirklich alles umfasst und b) nicht weiß, ob der Autor sich dabei nicht doch vertan hat, weil er es selbst nicht richtig (vollständig) wusste. Das zumindest die Argumentation, wie ich sie verstehe. Bei Javascript gibt es da meine ich noch mehr absurde Geschichten beim Objektvergleich. Aber der Grundsatz ist ja übertragbar.
mfg
tami