web-dev-qa-db-fra.com

JSLint signale un caractère "pendantes inattendu" dans un nom de variable préfixé souligné

Je sais que certaines personnes considèrent que la présence d'un trait de soulignement principal implique qu'une variable est "privée", qu'une telle confidentialité est une fiction, et suppose que c'est pourquoi JSLint signale ces noms avec un message d'erreur.

J'utilise Google Analytics sur un site Web que je crée. Je fais référence aux variables de GA, telles que "_gaq".

J'essaye d'obtenir que mon code JS soit 100% propre JSLint (je ne suis pas religieux au sujet de mon style de codage, et j'irai donc avec les conseils de M. Crockford). Cela dit, je ne peux rien faire pour les noms de variables de Google ... donc, je suppose que je ne peux pas être 100% "propre".

Je poste ici au cas où j'aurais mal compris le message et que je pourrais faire quelque chose pour me conformer aux pratiques JSLint.

73
Zhami

Ah, j'ai géré ceci ... J'encapsule les instructions qui utilisent les variables préfixées de soulignement avec les commandes JSLint pour désactiver, puis réactivez cette classe d'erreur:

/*jslint nomen: true*/
... statement(s) with _var ...
/*jslint nomen: false*/
72
Zhami

La meilleure façon de gérer cela est simplement d'activer l'option "Tolérer les pendants _ dans les identificateurs" (nomen). Voir http://www.jslint.com/lint.html pour plus de détails ...

51
scruffian

JSLint n'est qu'un outil de qualité de code. Ne pas réussir complètement ses tests ne signifie pas que votre code est mauvais; cela signifie simplement que vous ne suivez pas toutes les conventions énoncées par son créateur. Bien que JSLint fasse de très bonnes suggestions, il n'est pas toujours possible de toutes les réaliser, en particulier lors de l'utilisation de la bibliothèque de quelqu'un d'autre qui n'a pas été testée par rapport à celle-ci. Plutôt que de salir votre code source avec des méta-commentaires dénués de sens, vous devriez vérifier votre code avec l'option "Interdire les balancements _ dans les identificateurs" désactivée, car il ne semble pas logique de l'utiliser avec votre code particulier.

15
user422129

J'utilise JSLInt avec node.js. Vous pouvez passer le drapeau --nomen pour contourner cette fonctionnalité

jslint --nomen myfile.js 
8
Jaseem