ReferenceError: "x" is not defined

Message

ReferenceError: "x" is not defined

Type d'erreur

Quel est le problĂšme ?

Une variable qui n'existe pas est rĂ©fĂ©rencĂ©e quelque part. Cette variable doit ĂȘtre dĂ©clarĂ©e ou il faut vĂ©rifier qu'elle est disponible dans le script concernĂ© ou dans la portĂ©e utilisĂ©e.

Note : Lors du chargement d'une bibliothĂšque comme jQuery, assurez-vous de bien charger la bibliothĂšque avant d'accĂ©der aux variables comme $. La balise <script> utilisĂ©e pour charger la bibliothĂšque doit ĂȘtre prĂ©sente avant le code qui l'utilise.

Exemples

Exemple de variable non déclarée

toto.substring(1); // ReferenceError: toto is not defined

La variable toto n'est définie nulle part. De plus, il faut qu'elle soit une chaßne de caractÚres afin que la méthode String.prototype.substring() puisse fonctionner.

var toto = "truc";
toto.substring(1); // "ruc"

Exemple de portée invalide

Une variable doit ĂȘtre disponible dans le contexte d'exĂ©cution oĂč elle est utilisĂ©e. Les variables dĂ©finies au sein d'une fonction ne peuvent pas ĂȘtre utilisĂ©es en dehors de cette fonction car la variable appartient Ă  la portĂ©e de la fonction.

function numbers () {
  var num1 = 2,
      num2 = 3;
  return num1 + num2;
}

console.log(num1); // ReferenceError num1 is not defined.

Toutefois, une fonction peut accéder aux variables et aux fonctions définies dans la portée dans laquelle elle s'inscrit. Ainsi, une fonction définie dans la portée globale peut utiliser toutes les variables définies dans la portée globale.

var num1 = 2,
    num2 = 3;

function numbers () {
  return num1 + num2;
}

console.log(num1); // 2

Voir aussi