Un espace après le nom de la fonction est mal?
J'ai été en utilisant JSLint et j'ai eu une erreur de mettre un espace après le nom de la fonction. Pourquoi est-ce mauvais?
function coolness () {
var hi = "this";
}
ERREUR: Problème à la ligne 1 caractère 19: Inattendu espace entre 'fraîcheur' et '('.
- Il est mauvais parce qu'un certain grognon senior était de mauvaise humeur quand il a écrit jslint, que vous serez constamment si vous continuez à l'utiliser.
- Les Conventions de l'aider à garder le code plus lisible. Cohérence à l'échelle de plusieurs de ces fonctions est essentielle.
- Voir Crockford parler youtu.être/taaEzHI9xyY?t=1949
Vous devez vous connecter pour publier un commentaire.
JSLint n'est pas une syntaxe JavaScript vérificateur d'autant que c'est un JavaScript vérificateur de style. Les lignes directrices de style qu'il utilise sont ceux écrits par Douglas Crockford.
Certaines personnes ne sont pas d'accord avec son style de décisions, certaines personnes le font. Ils ne sont pas la loi et vous n'êtes pas obligé de les suivre. Alternative JS linters comme JSHint existent.
La règle particulière que vous rencontrez est ici:
JavaScript n'est pas les espaces sensibles. Vous pouvez ajouter cet espace si il vous fait vous sentir mieux. (Il n'est pas standard, cependant.)
Selon Crockford,
Pour nommé fonctions, NE PAS insérer d'espace entre nom de la fonction et les parenthèses:
Pour anonyme fonctions, FAIRE insérer un espace entre
function
mot-clé et les parenthèses:Veuillez vérifier le code javascript convetions ci-dessous et vous trouverez votre réponse.
Exemple pour un fonction:
Exemple pour fonction anonyme:
Techniquement parlant, votre code est parfaitement valable, même si certains de code de style de normes indiquent qu'il ne devrait pas être un tel espace (par exemple, celui que @Bodgan citée).
En fait, lorsque vous compressez votre code (en utilisant l'un des nombreux outils comme YUI Compressor ou Google Closure Compiler) ces espaces sont entièrement supprimé - y compris ceux d'avant/après les accolades cités par @Bodgan. Et c'est valable JS de cours.
Je pense que si votre projet voulez avoir un seul style (
function name () {...}
VSfunction name() {...}
), l'ancien est pire parce que:E. g.
C++:
PHP:
Je pense que l'appel de la fonction et de la déclaration de la fonction n'est pas assez digne pour besoin de deux styles différents (#1). Ce n'est pas suivant le principe de BAISER.
Par exemple: En quelques occasions, j'ai de la copie d'une déclaration de fonction du modèle de la fonction de nombreux paramètres (il y a peut-être pas une bonne auto-complétion de l'indice), et de le coller dans une position dans le code pour le transformer en un appel de fonction. Si deux styles de là, je vais avoir besoin de soins supplémentaires (assument aucune linter) pour supprimer l'espace supplémentaire entre les
functionName (longParameterList...)
.Remarques:
#1 - quelques opinions font valoir ce qui facilite les recherches dans les fichiers de déclarations de fonction, qui je ne pense pas que convaincants-une raison suffisante pour ajouter le style supplémentaire à retenir dans le codage.