JavaScript n'a pas de guide de style de codage faisant autorité, mais il existe des styles de codage populaires :
1. Comparaison des styles de code
1.1 Indentation
Deux espaces, plus d'indentation, pas d'indentation de tabulation : Google, NPM, Node.js, Idiomatic
Retrait de tabulation : jQuery
4 espaces : Crockford
1.2 Espace entre paramètres et expressions
Utilisez des styles compacts : Google, NPM, Node.js
1.3 Longueur de la ligne de code
Jusqu'à 80 caractères : Google, NPM, Node.js, Crockford (à l'intérieur d'un bloc de code, une indentation autre que 2 espaces permet d'aligner les arguments de la fonction sur la position du premier argument de la fonction. Une autre option utilise 4 espaces pour l'indentation lorsque emballage automatique)
Aucun commentaire laissé : jQuery, Idiomatic
1.4 point-virgule
Utilisez toujours des points-virgules, ne comptez pas sur l'insertion implicite : Google, Node.js, Crockford
N'utilisez pas expect dans certaines situations : NPM
Aucun commentaire laissé : jQuery, Idiomatic
1.5 Remarques
Suivez les conventions JSDoc : Google, Idiomatic
Aucun commentaire laissé : NPM, Node.js, jQuery, Crockford
1.6 Citations
Guillemets simples recommandés : Google, Node.js
Guillemets doubles : jQuery
Pas de commentaires : NPM, Idiomatic, Crockford
1.7 Déclaration des variables
Déclarez-en un à la fois, sans virgules : Node.js
1.8 Bretelles
Utilisez des accolades ouvrantes sur la même ligne : Google, NPM, Node.js, Idiomatic, jQuery, Crockford
1.9 Variables globales
N'utilisez pas de variables globales : Google, Crockford (Google a déclaré que les conflits de noms de variables globales sont difficiles à déboguer et peuvent causer des problèmes gênants lors de l'intégration des deux projets. Afin de faciliter le partage du code JavaScript commun, une convention doit être établie pour éviter les conflits. Crockford estime que les variables globales implicites ne devraient pas être utilisées)
Aucun commentaire : Idiomatic, jQuery, NPM, Node.js
2 Style de dénomination
2.1 Dénomination des variables
Le premier mot du début est en minuscule et la première lettre de tous les mots suivants est en majuscule : Google, NPM, Node.js, Idiomatic
2.2 Dénomination des constantes
Utilisez des majuscules : Google, NPM, Node.js
2.3 Dénomination des fonctions
Le premier mot du début est en minuscule et la première lettre de tous les mots suivants est en majuscule (camel case) : Google, NPM, Idiomatic, Node.js (il est recommandé d'utiliser des noms de fonctions longs et descriptifs)
2.4 Dénomination des tableaux
Utiliser le pluriel : Idiomatique
2.5 Dénomination des objets et des classes
Utilisez les formulaires suivants : Google, NPM, Node.js
2.6 Autre dénomination
Utilisez le formulaire CSS avec tirets inférieurs pour les noms de fichiers longs et les clés de configuration : NPM
3. Configurez le fichier .jshintrc selon le style ci-dessus
JSHint (http://www.jshint.com/) est un outil de vérification de la syntaxe et du style JavaScript que vous pouvez utiliser pour vous alerter des problèmes liés au style de code. Il peut être bien intégré dans de nombreux éditeurs couramment utilisés et constitue un excellent outil pour unifier le style de codage de l'équipe.
Vous pouvez consulter les options disponibles via la documentation JSHint : http://www.jshint.com/docs/#options
Ensuite, créez un fichier .jshintrc basé sur le premier style de chacune des catégories ci-dessus. Vous pouvez le placer dans le répertoire racine du projet, et l'éditeur de code JSHint-avare le suivra pour unifier tous les styles de code du projet.
De plus, vous devez ajouter l'en-tête suivant à votre fichier JavaScript :
Dans le fichier Node.js vous devez ajouter :
4. Exécutez automatiquement JSHint avant de vous engager dans Git
Si vous souhaitez vous assurer que tout le code JS est cohérent avec le style défini dans .jshintrc, vous pouvez ajouter le contenu suivant à votre fichier .git/hooks/pre-commit lorsque vous essayez de valider de nouvelles modifications. La vérification du style est automatiquement effectué lorsque des fichiers sont ajoutés au projet.
filenames=($(git diff --cached --name-only HEAD))
quel jshint &> /dev/null
si [ $? -ne 0 ];
alors
echo "erreur : jshint introuvable"
echo "installer avec : sudo npm install -g jshint"
sortie 1
fi
pour moi dans "${filenames[@]}"
faire
Si [[ $i =~ .js$ ]];
Alors
echo jshint $i
jshint $i
si [ $? -ne 0 ];
alors
sortie 1
fi
fi
fait