JavaScript JSHint


Exemple

JSHint est un outil open source qui détecte les erreurs et les problèmes potentiels dans le code JavaScript.

Pour charpurer votre JavaScript, vous avez deux options.

  1. Allez sur JSHint.com et collez-y votre code dans l'éditeur de texte en ligne.
  2. Installez JSHint dans votre IDE .

L'avantage de l'ajouter à votre IDE est que vous pouvez créer un fichier de configuration JSON nommé .jshintrc qui sera utilisé lors du linting de votre programme. Ceci est conventionnel si vous voulez partager des configurations entre des projets.

Exemple de fichier .jshintrc

{
    "-W097": false, // Allow "use strict" at document level
    "browser": true, // defines globals exposed by modern browsers http://jshint.com/docs/options/#browser
    "curly": true, // requires you to always put curly braces around blocks in loops and conditionals http://jshint.com/docs/options/#curly
    "devel": true, // defines globals that are usually used for logging poor-man's debugging: console, alert, etc. http://jshint.com/docs/options/#devel
    // List global variables (false means read only)
    "globals": {
        "globalVar": true
    },
    "jquery": true, // This option defines globals exposed by the jQuery JavaScript library.
    "newcap": false,
    // List any global functions or const vars
    "predef": [
        "GlobalFunction",
        "GlobalFunction2"
    ],
    "undef": true, // warn about undefined vars
    "unused": true // warn about unused vars
}

JSHint permet également des configurations pour des lignes / blocs de code spécifiques

switch(operation)
{
   case '+'
   {
      result = a + b;
      break;
   }

   // JSHint W086 Expected a 'break' statement
   // JSHint flag to allow cases to not need a break
   /* falls through */
   case '*':
   case 'x':
   {
      result = a * b;
      break;
   }
}

// JSHint disable error for variable not defined, because it is defined in another file
/* jshint -W117 */
globalVariable = 'in-another-file.js';
/* jshint +W117 */

Plus d'options de configuration sont documentées sur http://jshint.com/docs/options/