validar validacion vacios formularios formulario enviar ejemplos ejemplo con campos antes javascript jquery

javascript - validacion - ¿De qué sirve JSLint si jQuery falla la validación



validar formulario javascript onclick (9)

JSLint lo ayuda a detectar problemas, no es una prueba de validez o un reemplazo para pensar. jQuery está bastante avanzado a medida que js va, lo que hace que este resultado sea comprensible. Quiero decir que las primeras líneas son hacks de velocidad, no es de extrañar que el analizador js más rígido tenga un par de errores.

En cualquier caso, la suposición de que el código popular es un código perfectamente correcto o incluso ''bueno'' es defectuoso. El código de JQuery es bueno, y puedes aprender mucho al leerlo. Debería ejecutar sus cosas a través de JSLint, aunque solo sea porque es bueno escuchar otra opinión sobre lo que ha escrito.

De la descripción de JSLint:

JSLint toma una fuente JavaScript y la escanea. Si encuentra un problema, devuelve un mensaje que describe el problema y una ubicación aproximada dentro de la fuente. El problema no es necesariamente un error de sintaxis, aunque a menudo sí lo es. JSLint analiza algunas convenciones de estilo y problemas estructurales. No prueba que tu programa sea correcto. Simplemente proporciona otro conjunto de ojos para ayudar a detectar problemas.

JSLint define un subconjunto profesional de JavaScript, un lenguaje más estricto que el definido por la Edición 3 de la Especificación del Lenguaje ECMAScript. El subconjunto está relacionado con las recomendaciones que se encuentran en las Convenciones del Código para el Lenguaje de Programación de JavaScript.

Así que he estado explorando diferentes métodos para limpiar y probar mi JavaScript. Pensé que al igual que en cualquier otro idioma, una forma de mejorar es leer un buen código. jQuery es muy popular, por lo que debe tener un cierto grado de buena codificación.

Entonces, ¿por qué cuando ejecuto jQuery a través de la validación de JSLint me da este mensaje?

Error:

Problema en la línea 18 carácter 5: se esperaba un identificador y en su lugar se veía ''indefinido'' (una palabra reservada).

indefinido,

Problema en la línea 24, carácter 27: Falta punto y coma.

jQuery = window.jQuery = window. $ = function (selector, context) {

Problema en la línea 24, carácter 28: se esperaba un identificador y, en cambio, se veía ''=''.

jQuery = window.jQuery = window. $ = function (selector, context) {

Problema en la línea 24, carácter 28: Detener, incapaz de continuar. (0% escaneado) .

Esto se hizo usando JSLint y jquery-1.3.1.js


Si no está desarrollando activamente jQuery, ¿por qué incluso ejecutar JSLint sobre él? Si funciona, funciona, y no tienes que preocuparte por eso.


Los objetivos de los desarrolladores de jQuery no son los mismos que sus objetivos. jQuery está diseñado para la velocidad y la compacidad y lograr esos objetivos supera la legibilidad y la facilidad de mantenimiento.

Las pruebas de Crockford en JSLint tienen más que ver con el logro de algo que le haría sentir cómodo llevándose a su casa para conocer a su madre, lo cual es una preocupación válida si estará casado con su código por algún tiempo.


El propósito de JsLint se establece claramente en las preguntas frecuentes [1]:

"JSLint define un subconjunto profesional de JavaScript, un lenguaje más estricto que el definido por la Edición 3 de la Especificación de Lenguaje ECMAScript. El subconjunto está relacionado con las recomendaciones que se encuentran en Convenciones de Código para el Lenguaje de Programación de JavaScript."

Ahora si está confundido: ECMA3 ya es un subconjunto de las capacidades JS proporcionadas por cualquiera de los intérpretes JS de hoy (vea [2] para una descripción general de la relación entre las versiones de JavasScript y ECMAScript)

Para responder a la pregunta "de qué sirve JSlint": * use JsLint para verificar que está utilizando un subconjunto "seguro" de Javascript que es poco probable que se rompa entre las implementaciones de JS. * use Jslint para verificar que siguió las convenciones del código crockford [4]


"jQuery es muy popular, por lo que debe tener un cierto grado de buena codificación".

A uno le gustaría esperar que este sea el caso con jQuery, pero lamentablemente no es realmente cierto. jQuery es útil y popular, pero no es una biblioteca de JavaScript bien escrita. David Mark publicó recientemente una crítica mordaz de jQuery en comp.lang.javascript que examina una gran cantidad de ejemplos del código deficiente encontrado en jQuery:

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


He encontrado un caso en el que JSLint es muy, muy útil: cuando tomas una de esas geniales bibliotecas que flotan en la ''Red, luego otra, y luego otra, pronto te encuentras cargando 50k de Javascript en cada nuevo carga de la página (el almacenamiento en caché puede ayudar, pero no es una solución de panacea).

¿Qué harás entonces? Comprima esas bibliotecas. ¡Pero su host no hace compresión para archivos que no sean html! ¿Y qué? Usas un compresor Javascript.

Lo mejor que he encontrado es Dean Edward''s; Lo usé para comprimir Showdown de John Fraser (un Markdown para la biblioteca Javascript), pero desafortunadamente, la compresión rompió el código. Dado que Showdown ya no es compatible, tuve que corregirlo yo mismo, y JSlint fue invaluable para eso.

En resumen, JSlint es útil para preparar su código JS para la compresión de trabajo pesado.


Si desea utilizar los métodos de cadena tipo margarita como jQuery le permite, puede apreciar YUI3.


JQuery, por supuesto, no es lo mejor del mundo. Eso ya está claro cuando miras la notación. La combinación del paréntesis del dólar es realmente mala para tus ojos. La programación debe ser clara y simple. JQuery está lejos de eso. Esa razón es suficiente para que yo no la use. Que no está escrito correctamente no me sorprende y solo subraya mis pensamientos en esta biblioteca de JavaScript.


JSLint evalúa las opiniones de una persona en particular (Douglas Crockford) sobre qué es lo que hace que el código de JavaScript sea bueno. Crockford es muy bueno, pero algunas de sus opiniones son, en el mejor de los casos, retentivas a nivel anal, como la regla de subrayado, o el uso de operadores de incremento / decremento.

Muchos de los problemas etiquetados por JSLint en el resultado anterior son problemas que Crockford considera que llevan a un código difícil de mantener, o son cosas que él cree que lo llevaron a hacer cosas ''inteligentes'' en el pasado que pueden ser difíciles de mantener.

Sin embargo, hay algunas cosas que Crockford identifica como errores con los que estoy de acuerdo, como el punto y coma faltante. Dejar caer el punto y coma obliga al navegador a adivinar dónde insertar el token del final de la declaración, y que a veces puede ser peligroso (siempre es más lento). Y varios de esos errores están relacionados con que JSLint no espera o admite múltiples asignaciones, como lo hace jQuery en la línea 24.

Si tiene alguna pregunta sobre un error de JSLint, envíe un correo electrónico a Crockford, él es muy bueno para responder, y con su respuesta, al menos sabrá por qué se implementó JSLint de esa manera.

Ah, y solo porque una biblioteca es popular no significa que su código sea bueno. JQuery es popular porque es una biblioteca relativamente rápida y fácil de usar. Que esté bien implementado es bastante intrascendente para su popularidad entre muchos. Sin embargo, seguramente debería leer más código, todos deberíamos.

JSLint puede ser muy útil para identificar problemas con el código, incluso si JQuery no supera los estándares que desea.