262 votes

conventions de nommage JavaScript

Je sais qu'il ya beaucoup de controverse (peut-être pas la polémique, mais des arguments au moins) à propos de laquelle la convention de nommage est le meilleur pour le JavaScript.

Comment faites-vous le nom de vos variables, les fonctions, les objets et tel?

Je vais laisser mes propres pensées sur ce, comme je n'ai pas fait de JS pour longtemps (quelques années seulement), et je viens de recevoir une demande de création d'un document avec des conventions de nommage pour être utilisés dans nos projets au travail. J'ai donc été à la recherche (google-ing), autour, et il y a beaucoup d'opinions différentes.

Les livres que j'ai lu sur JS également utiliser différentes conventions de nommage eux-mêmes, mais ils sont tous d'accord sur un bit: "Trouver ce qui vous convient, et de s'y tenir." Mais maintenant que j'ai lu tellement de choses autour, j'ai trouvé que j'ai comme certains de l'autre des méthodes un peu mieux que ce à quoi je suis habitué maintenant.

203voto

Geoff Points 7754

J’ai suivi les conventions de code de Crockford pour javascript. J’utilise aussi son outil de JSLint pour valider la suite de ces conventions.

161voto

Deebster Points 1805

Comme le dit Geoff, ce que dit Crockford est bon.

La seule exception que je suis (et que j'ai vu largement utilisé) est d'utiliser $ varname pour indiquer un objet jQuery (ou n'importe quel autre type de bibliothèque). Par exemple

var footer = document.getElementById('footer');

var $footer = $('#footer');

117voto

Pavel Hodek Points 2488

Vous pouvez suivre ce Guide de Style pour le JavaScript Google

En général, utilisez functionNamesLikeThis, variableNamesLikeThis, ClassNamesLikeThis, EnumNamesLikeThis, methodNamesLikeThis et SYMBOLIC_CONSTANTS_LIKE_THIS.

EDIT : Voir belle collection de Beautifiers et de Guides de Style JavaScript.

10voto

Simple As Could Be Points 3906

Une convention que je voudrais essayer est nommant des modules statiques avec un 'le' préfixe. Regarde ça. Quand j'utilise le module de quelqu'un d'autre, il n'est pas facile de voir comment je suis censé l'utiliser. par exemple:

 define(['Lightbox'],function(Lightbox) {
  var myLightbox = new Lightbox() // not sure whether this is a constructor (non-static) or not
  myLightbox.show('hello')
})
 

Je pense à essayer une convention où les modules statiques utilisent 'the' pour indiquer leur préexistence. Quelqu'un at-il vu un meilleur moyen que cela? Cela ressemblerait à ceci:

 define(['theLightbox'],function(theLightbox) {
  theLightbox.show('hello') // since I recognize the 'the' convention, I know it's static
})
 

6voto

Javier Points 33134

Je pense qu'en plus de certains de la syntaxe de limitations; les conventions de nommage de raisonnement sont très indépendante de la langue. Je veux dire, les arguments en faveur de c_style_functions et JavaLikeCamelCase pourrait tout aussi bien être utilisé dans le sens inverse, c'est juste que les utilisateurs de la langue ont tendance à suivre les auteurs de langue.

cela dit, je pense que la plupart des bibliothèques ont tendance à suivre grossièrement une simplification de Java CamelCase. Je trouve Douglas Crockford conseils de bon goût assez pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X