J'ai utilisé le conditionnel car je ne suis pas sûr qu'il y ait vraiment des erreurs dans JS qui puissent être réparées. Mais voici quelques erreurs de jeunesse :
l'absence de classe (les prototypes sont très déroutants) ;
problème avec this : setTimeout(foo.bar, 10) -> la méthode bar va être appelée avec this == window et pas foo comme on pourrait l'espérer ;
pollution de l'espace global : si on oublie de déclarer une variable avec var, elle devient une variable globale, alors qu'il serait préférable d'en faire une variable locale ;
l'opérateur == n'est pas transitif et fait appel à la coercition, ce qui conduit à de nombreux WTF! ;
il est trop difficile de parcourir les attributs d'un objet ;
il est difficile d'écrire des chaînes de caractères de plusieurs lignes en incluant des variables dedans (des templates).
Mais, pour ma part, j'ai trouvé une solution à ces problèmes qui me convient bien : CoffeeScript.
[^] # Re: Quelles erreurs
Posté par Bruno Michel (site web personnel) . En réponse à la dépêche Dart va‐t‐il remplacer JavaScript comme langage dans les navigateurs ?. Évalué à 10.
J'ai utilisé le conditionnel car je ne suis pas sûr qu'il y ait vraiment des erreurs dans JS qui puissent être réparées. Mais voici quelques erreurs de jeunesse :
this:setTimeout(foo.bar, 10)-> la méthodebarva être appelée avecthis==windowet pasfoocomme on pourrait l'espérer ;var, elle devient une variable globale, alors qu'il serait préférable d'en faire une variable locale ;==n'est pas transitif et fait appel à la coercition, ce qui conduit à de nombreux WTF! ;Mais, pour ma part, j'ai trouvé une solution à ces problèmes qui me convient bien : CoffeeScript.