Ich werde jetzt zwar nicht direkt off-topic, verfehle aber dennoch knapp das Thema. Sorry dafür!
Grundsätzlich würde ich mir gerne mal anhören, warum der Mensch, der JavaScript konzipiert hat, es für besser hielt, sich grenzwertige Konstrukte wie den "strict equality operator" (===) und — fast noch geiler — den "strict inequality operator" (!==) einfallen zu lassen als eine strengere Typisierung zu erzwingen.
"Anyone…? Anyone…? Bueller…? Bueller…?"
Oder hat das vorher schon jemand verbrochen? Spontan würde mir angesichts der Hemdsärmligkeit BASIC einfallen, aber dort schlägt das Pendel in die andere Richtung aus und die Symbole für Zuweisung und Vergleich sind identisch und kontextabhängig, was an sich auch eine Katastrophe ist.
Eigentlich mag ich C, aber das ist diesbezüglich leider auch ein ziemlicher Misthaufen, bei dem man darauf hoffen muss, dass man von einem ordentlichen Compiler gerettet wird. Schade, dass Pascal so unsexy ist.