Pour l'insertion implicite des points-virgules, je maintiens qu'un langage qui propose un truc aussi bancal et foireux est plus un moyen de se tirer une balle dans le pied qu'autre chose.
Faut voir, si on prend l'un des derniers trolls sur le sujet (https://github.com/twitter/bootstrap/issues/3057) il apparaît (très rapidement) que le problème n'est pas en fait l'absence du ; mais surtout l'usage de ! comme séparateur
TC39 is considering the use of ! as an infix operator. This code will break in the future. Fix it now. Learn to use semicolons properly. ! is not intended to be a statement separator. ; is.
Alors c'est sur, javascript est laxiste… mais c'est pour ça qu'il faut arriver à bien comprendre les forces et faiblesses de celui-ci, et surtout connaître les limites. Après c'est beaucoup plus facile de coder avec.
P.S. je note que tu n'as rien dit sur le scope des variables déclarées avec "var" :-p
Quel est vraiment le problème ? En effet le scope est la fonction. D'où l'usage courant de
(function(){[...]})();
afin d'isoler les traitements
Après il y a des choses bien plus tordues en javascript, notamment ce qui est après un return est accessible
par exemple :
varplop=function(){b();return;functionb(){console.log('ok');};};plop();// ok
[^] # Re: Il manque une faiblesse !
Posté par CrEv (site web personnel) . En réponse au journal Réflexions à propos de NodeJS et de Javascript plus globalement. Évalué à 2. Dernière modification le 18 avril 2012 à 17:01.
Faut voir, si on prend l'un des derniers trolls sur le sujet (https://github.com/twitter/bootstrap/issues/3057) il apparaît (très rapidement) que le problème n'est pas en fait l'absence du
;mais surtout l'usage de!comme séparateurAlors c'est sur, javascript est laxiste… mais c'est pour ça qu'il faut arriver à bien comprendre les forces et faiblesses de celui-ci, et surtout connaître les limites. Après c'est beaucoup plus facile de coder avec.
Quel est vraiment le problème ? En effet le scope est la fonction. D'où l'usage courant de
afin d'isoler les traitements
Après il y a des choses bien plus tordues en javascript, notamment ce qui est après un return est accessible
par exemple :
mais
ne fonctionnera pas
Un lien assez sympa http://vic.github.com/jwm-tt-js-ninja/