Sam & Max » emacscript http://sametmax.com Du code, du cul Sat, 07 Nov 2015 10:56:13 +0000 en-US hourly 1 http://wordpress.org/?v=4.1 Un code plus propre avec “use strict” en javascript 16 http://sametmax.com/un-code-plus-propre-avec-use-strict-en-javascript/ http://sametmax.com/un-code-plus-propre-avec-use-strict-en-javascript/#comments Tue, 26 Mar 2013 10:30:20 +0000 http://sametmax.com/?p=4002 un message de Dieu lui-même, et maintenant vous n'utilisez juste qu'un sous-ensemble du langage dans votre code. Mais cela demande de la vigilance. Une astuce peut vous aider à rester dans le droit chemin : "use strict".]]> Le JavaScript est très permissif. Mais vous avez reçu un message de Dieu lui-même, et maintenant vous n’utilisez juste qu’un sous-ensemble du langage dans votre code. Mais cela demande de la vigilance.

Une astuce peut vous aider à rester dans le droit chemin : "use strict".

Bien entendu, vous écrivez votre code dans une fonction appelée immédiatement. Ajoutez la chaîne de caractères "use strict"; juste en dessous de cette fonction pour que les interpréteurs des navigateurs modernes deviennent plus exigeants avec celui-ci :

(function(){
"use strict";
 
// votre code
 
})()

Pour les navigateurs qui ne connaissent pas cette instruction, c’est juste une string, et c’est ignoré. Pour ceux qui connaissent l’instruction, tout le bloc concerné (ici tout votre code, mais PAS le code en dehors de la fonction, donc pas de risque de planter le code des autres tels qu’un plugin jQuery) sera vérifié.

Parmi les vérifications :

  • Définir deux fois le même attribut dans un objet avec la notation littérale.
  • Utilisation de eval().
  • Utilisation de with.
  • Utilisation de arguments and caller.

Si ces situations sont rencontrées, une exception est levée. Un bon article avec des exemples en anglais ici.

Tous mes codes JS ont maintenant "use strict" par défaut, en plus du plugin SublimeLinter qui me sert de garde-fou supplémentaire.

]]>
http://sametmax.com/un-code-plus-propre-avec-use-strict-en-javascript/feed/ 16