web-dev-qa-db-fra.com

JSLint: a été utilisé avant sa définition

Bonjour, j'ai les 3 fichiers javascript.

  • jquery.js
  • utility.js
  • fichier1.js

Dans file1.js j'ai

jQuery.noConflict()
jQuery(document).ready(function($) { 
 // ....
});

Je reçois une erreur 'jQuery' a été utilisé avant sa définition. et 'document' a été utilisé avant sa définition.

Comment puis-je me débarrasser de cet avertissement en toute sécurité?.

Si je fais

var document = document || {}; 

alors dans mon utility.js, s'il est utilisé, il sera nul dans IE et ok dans Firefox).

Quelle est la meilleure solution à cela?

95
Chun ping Wang

De la documentation

JSLint reconnaît également une directive/* global */qui peut indiquer à JSLint que les variables utilisées dans ce fichier ont été définies dans d'autres fichiers. Le commentaire peut contenir une liste de noms séparés par des virgules. Chaque nom peut éventuellement être suivi de deux points et de true ou false, true indiquant que la variable peut être affectée par ce fichier et false indiquant que l'attribution n'est pas autorisée (valeur par défaut). La directive respecte la portée de la fonction.

Certains globals peuvent être prédéfinis pour vous. Sélectionnez l'option Utiliser un navigateur (navigateur) pour prédéfinir les propriétés globales standard fournies par les navigateurs Web, telles que document et addEventListener.

Exemple:

/*jslint browser: true*/
/*global $, jQuery*/
169
Quentin

Comme Quentin le dit, il y a un /*global*/ directive.

Voici un exemple (mettez ceci en haut du fichier):

/*global var1,var2,var3,var4,var5*/

Assurez-vous que la déclaration globale initiale se trouve sur la même ligne que /*, ou alors ça casse.

31
stanton