Ich weiß, ich konnte es einfach nicht überprüfen, aber das Aufspüren von Javascript-Laufzeitfehlern kann ein Albtraum sein, da sie nicht immer dort auftreten, wo der Fehler tatsächlich im Code auftritt.
In der Tat ist die typische Praxis nicht zu überprüfen. Und ja, dies bedeutet, dass Sie Javascript-Fehler erhalten, die an anderer Stelle vom eigentlichen Problem gemeldet werden. In der Praxis ist dies jedoch kein großes Problem.
Wenn ich mit Javascript arbeite, teste ich ständig, was ich schreibe. In den meisten Codes habe ich Unit-Tests, die jedes Mal automatisch ausgeführt werden, wenn ich meinen Editor speichere. Wenn etwas unerwartet schief geht, weiß ich es fast sofort. Ich habe einen sehr kleinen Codebereich, in dem ich möglicherweise den Fehler gemacht habe, da es fast immer das letzte ist, was ich berührt habe, das den Fehler aufweist.
Wenn ich einen Laufzeitfehler erhalte, habe ich zumindest den Stack-Trace, und im Falle eines In-Browser-Fehlers habe ich die Möglichkeit, zu einer beliebigen Ebene des Stack-Trace zu wechseln und die Variablen zu überprüfen. Es ist normalerweise einfach, zurückzuverfolgen, woher der schlechte Wert stammt, und ihn somit auf das ursprüngliche Problem zurückzuführen.
Wenn Sie wie ich sind, als ich hauptsächlich in statisch typisierten Sprachen schrieb, habe ich vor dem Testen größere Codeblöcke geschrieben, und ich hatte keine Übung darin, einen Wert zurückzuverfolgen, von dem er stammt. Das Programmieren in einer Sprache wie Javascript ist anders, Sie müssen unterschiedliche Fähigkeiten anwenden. Ich vermute, dass eine solche Programmierung viel schwieriger erscheint, da dies nicht die Fähigkeiten sind, die Sie in anderen Sprachen wie C # entwickelt haben.
Trotzdem denke ich, dass es für explizite Typen viel zu sagen gibt. Sie eignen sich hervorragend zur Dokumentation und zum frühzeitigen Erkennen von Fehlern. Ich denke, dass wir in Zukunft zunehmend Dinge wie Flow und Typescript übernehmen werden, die dem Javascript die statische Typprüfung hinzufügen.