39 votes

À quoi sert JSLint si jQuery échoue à la validation

J'ai donc été d'explorer les différentes méthodes pour nettoyer et tester mon JavaScript. J'ai pensé tout comme toute autre langue, une façon d'obtenir mieux, c'est de lire le code de bonne. jQuery est très populaire, donc il doit avoir un certain degré de bon codage.

Alors pourquoi quand je lance jQuery par le biais de JSLint de validation il me donne ce message:

Erreur:

Problème à la ligne 18 de caractère 5: S'attendre à un identifiant et à la place de la scie 'undefined' (un mot réservé).

undefined,

Problème à la ligne 24 de caractère 27: Point-virgule manquant.

jQuery = fenêtre.jQuery = window.$ = fonction( sélecteur, context ) {

Problème à la ligne 24 de caractère 28: S'attendre à un identifiant et à la place de la scie '='.

jQuery = fenêtre.jQuery = window.$ = fonction( sélecteur, context ) {

Problème à la ligne 24 de caractère 28: L'arrêt, incapable de continuer. (0% scanné).

Cela a été fait à l'aide de JSLint et jquery-1.3.1.js

105voto

foxxtrot Points 6491

JSLint tests de l'un particulier de la personne (Douglas Crockford) des opinions sur ce qui fait un bon code JavaScript. Crockford est très bien, mais certains de ses avis sont anal rétention au mieux, comme le trait de soulignement de la règle, ou de l'utilisation de l'incrémentation/décrémentation les opérateurs.

Beaucoup de ces questions étaient marqués par JSLint au-dessus de la sortie sont des questions qui Crockford se sent conduit à difficile à maintenir du code, ou ce sont des choses qu'il ressent l'a amené à faire "intelligent" des choses dans le passé qui peut être difficile à maintenir.

Il y a certaines choses Crockford identifie comme des erreurs que je suis d'accord avec si, comme le manque des points-virgules chose. Déposer des points-virgules force le navigateur à deviner où insérer la fin de l'instruction jeton, et qui peut parfois être dangereux (c'est toujours plus lente). Et plusieurs de ces erreurs sont liées à JSLint ne s'attendait pas ou prise en charge de plusieurs tâches comme jQuery n'sur la ligne 24.

Si vous avez une question à propos d'un JSLint erreur, e-mail Crockford, il est vraiment bon sur de la réponse, et de sa réponse, vous aurez au moins savoir pourquoi JSLint a été mise en œuvre de cette façon.

Oh, et juste parce qu'une bibliothèque est populaire ne signifie pas qu'il code est tout bon. JQuery est populaire parce qu'il est relativement rapide, facile à utiliser la bibliothèque. Qu'il est bien mis en œuvre est plutôt sans conséquence pour sa popularité parmi beaucoup d'autres. Toutefois, vous devriez certainement lire plus de code, nous devrions tous et toutes.

JSLint peut être très utile dans l'identification des problèmes avec le code, même si JQuery ne passe pas les normes qu'il désire.

9voto

jacobangel Points 3848

JSLint vous aide à repérer les problèmes, il n'est pas un test de validité ou d'un remplacement pour la pensée. jQuery est assez avancé, comme js va, ce qui rend un tel résultat compréhensible. Je veux dire les deux premières lignes sont des hacks de vitesse, pas étonnant que les plus rigides js analyseur va avoir un couple d'erreurs.

En tout cas, l'hypothèse que les populaire de code est parfaitement correct du code ou même "bonne" est erronée. JQuery code est bon, et vous pouvez apprendre beaucoup de les lire. Vous devriez toujours exécuter vos trucs par JSLint, si seulement parce qu'il est bon d'entendre un autre avis sur ce que vous avez écrit.

De JSLint description:

JSLint prend une source JavaScript et de l'analyse. S'il constate un problème, il renvoie un message décrivant le problème et la localisation approximative dans la source. Le problème n'est pas nécessairement une erreur de syntaxe, même si c'est souvent le cas. JSLint examine certaines des conventions de style ainsi que des problèmes structurels. Cela ne prouve pas que votre programme est correct. Il fournit simplement une autre paire d'yeux pour les aider à déceler les problèmes.

JSLint définit un professionnel sous-ensemble de JavaScript, un langage plus stricte que celle qui est définie par l'Édition 3 de la Spécification du Langage ECMAScript. Le sous-ensemble est liée à des recommandations figurant dans le Code de Conventions pour le JavaScript les langages de Programmation.

7voto

vsedach Points 977

"jQuery est très populaire, donc il doit avoir un certain degré de bon codage."

On aimerait espère que c'est le cas avec jQuery, mais malheureusement, il n'est pas vraiment vrai. jQuery est utile et populaire, mais il n'est pas un bien écrit, d'une bibliothèque JavaScript. David Mark a récemment posté une critique cinglante de jQuery dans comp.lang.javascript qui examine un grand nombre d'exemples de la mauvaise code en jQuery:

http://groups.google.com/group/comp.lang.javascript/msg/37cb11852d7ca75c?hl=en&

4voto

nickf Points 185423

Si vous ne développez pas activement jQuery lui-même, pourquoi même exécuter JSLint dessus? Si cela fonctionne, cela fonctionne et vous n'avez pas à vous en soucier.

4voto

Prestaul Points 31986

Les objectifs des développeurs jQuery ne sont pas les mêmes que vos objectifs. jQuery est conçu pour la rapidité et la compacité et la réalisation de ces objectifs prime la lisibilité et la maintenabilité.

Les tests de Crockford chez JSLint ont plus à voir avec la réalisation de quelque chose qu'il se sentirait bien de ramener chez lui pour rencontrer sa mère, ce qui est une préoccupation valable si vous allez être marié à votre code pendant un certain temps.

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