Outils pour utilisateurs

Outils du site


web:javascript:bonnes_pratiques

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
web:javascript:bonnes_pratiques [2014/04/03 03:18] – créée sgariepyweb:javascript:bonnes_pratiques [2022/02/02 00:42] (Version actuelle) – modification externe 127.0.0.1
Ligne 3: Ligne 3:
 Le JavaScript n'est pas le meilleur des langage de programmation.  Il a ses faiblesses et c'est pour cette raison qu'il faut établir les bonnes pratiques. Le JavaScript n'est pas le meilleur des langage de programmation.  Il a ses faiblesses et c'est pour cette raison qu'il faut établir les bonnes pratiques.
  
-====== Style ======+===== Pratiques générales ===== 
 + 
 +==== Insertion automatique du point-vigule ==== 
 + 
 +Ne jamais se fier à l'insertion automatique du point-virgule qui peut arriver à la fin d'une ligne d'instruction.  Toujours mettre soi-même tous les point-virgules nécessaires. 
 + 
 +Par exemple, avec l'invocation de fonctions, qu'arrive-t-il avec ceci : 
 +<code javascript> 
 +x = y 
 +(function () { 
 +  console.log('ok'); 
 +}()); 
 +</code> 
 + 
 +L'interpréteur va assigner ''y'' comme si c'était une fonction et que la fonction elle-même, sur la ligne suivante, était donnée en argument. 
 + 
 +===== Style ===== 
 + 
 +Certainement, plusieurs ont subit le débat sur les accolades : faut-il les placer à droite ou sur la ligne suivante à gauche ? 
 + 
 +<code javascript> 
 +if (true) { 
 + 
 +}</code> 
 + 
 +ou encore  
 + 
 +<code javascript> 
 +if (true) 
 +
 + 
 +}</code> 
 + 
 +Une bonne raison de choisir plutôt l'un ou l'autre, vient du fait que le JavaScript met des '';'' automatiquement à la fin de certaines lignes d'instruction.  Prendre par exemple ce code : 
 +<code javascript> 
 +var resultat = (function () { 
 +  return 
 +  { 
 +    ok: "allo" 
 +  } 
 +})(); 
 +console.log(resultat.ok); 
 +</code> 
 + 
 +Quel sera le résultat ?  Ce n'est pas évident à la première vue, mais ce sera ''undefined'' L'interpréteur Javascript aura mis automatiquement un '';'' à la suite du ''return'' Donc, au lieu de retourner l'objet contenant la propriété ''ok'', la valeur de ''resultat'' sera indéfini.  Il aura plutôt fallu écrire : 
 + 
 +<code javascript> 
 +var resultat = (function () { 
 +  return { 
 +    ok: "allo" 
 +  } 
 +})(); 
 +console.log(resultat.ok); 
 +</code> 
 +À ce moment on voit ''allo'' s'afficher dans la console. 
 + 
 + 
 +====== Éviter la confusion ====== 
 + 
 +===== Instruction with ===== 
 + 
 +L'instruction ''with'' est à éviter dans JavaScript parce qu'il peut être difficile de comprendre l'intention du code. 
 + 
 +<code javascript> 
 +with (o) { 
 +  foo = koda; 
 +
 +</code> 
 + 
 +Lequel de ces assignations est effectuée : 
 +  * ''o.foo = koda;'' 
 +  * ''o.foo = o.koda;'' 
 +  * ''foo = koda;'' 
 +  * ou ''foo = o.koda;'' 
 + 
 +C'est difficile à dire.  L'instruction ''with'' n'est pas typiquement nécessaire, donc on évite. 
 + 
 +===== Transitivité ===== 
 + 
 +^ Comparaison  ^ Résultat 
 +| ''%%0 == ''%%''  | ''true'' 
 +| ''%%0 == '0'%%''  | ''true'' 
 +| ''%%'' == '0'%%''  | ''false'' 
 +| ''%%false == 'false'%%''  | ''false'' 
 +| ''%%false == '0'%%''  | ''true'' 
 +| ''%%" \t\r\n " == 0%%''  | ''true'' 
 + 
 +Donc, toujours utiliser ''==='' et ne pas utiliser ''==''
 + 
 +===== Multiline string literals ===== 
 + 
 + 
 + 
 + 
 + 
 +---- 
 +  * Source : Douglas Crockford.
  
web/javascript/bonnes_pratiques.1396487887.txt.gz · Dernière modification : 2022/02/02 00:43 (modification externe)