script - Cómo rectificar "El documento se usó antes de que se definiera" utilizando Jslint
jsonlint (5)
Me sale el siguiente error en jsLint :
Se utilizó ''documento'' antes de que se definiera.
Línea que causa el error:
document.cookie = name + "=" + value + expires + "; path=/";
Entiendo por qué sucede esto, pero me gustaría que mi código sea compatible.
¿Cómo resuelvo esto?
Gracias.
Desde el sitio web de jslint, puede leer sobre una directiva / global / que le permite establecer variables que se supone que se declararán en otro lugar.
Aquí hay un ejemplo (ponga esto en la parte superior del archivo):
//*global var1,var2,var3,var4,var5/*/
o, en el caso de starjava:
//*global document/*/
No estoy realmente seguro si se necesita el :true
o :false
, pero parece que se recomienda por lo que leo en el sitio. http://www.jslint.com/lint.html
Asegúrese de que la declaración global inicial esté en la misma línea que ''//*''
, o de lo contrario se romperá.
En modo cli puedes usar el archivo de configuración:
jslint.conf
{
"predef": [
"module",
"require",
"window",
"document",
"jQuery",
"Backbone",
"Marionette",
"Modernizr",
"_",
"setTimeout",
"clearTimeout",
"setInterval",
"clearInterval"
],
"evil":false,
"indent":4,
"vars":true,
"passfail":false,
"plusplus":false
}
Y use jslint con el parámetro --config jslint.conf
.
Lugar
/*jslint browser:true */
En el comienzo del cuerpo de tu función. O, alternativamente, puedes usar
/*global document: false */
JSLint es para la comprobación de cualquier código javascript, y el objeto global del document
no existe en todas partes, por lo que debe decirle manualmente a JSLint que su código está destinado a ejecutarse en el navegador y, por lo tanto, se define la variable global del document
. Por ejemplo, para javascript del lado del servidor se espera que JSLint informe sobre este error.
Si está utilizando nodo puede agregar la siguiente línea
/ * node JSLint: true * /
al inicio de la secuencia de comandos http://jslinterrors.com/a-was-used-before-it-was-defined/
Si se supone que todo su código JS debe ejecutarse desde el navegador, solo agregue la --browser
.
jslint --browser my.js