--- title: 'ReferenceError: assignment to undeclared variable "x"' slug: Web/JavaScript/Reference/Erreurs/Undeclared_var tags: - Erreurs - JavaScript - ReferenceError translation_of: Web/JavaScript/Reference/Errors/Undeclared_var ---
ReferenceError: assignment to undeclared variable "x" (Firefox) ReferenceError: "x" is not defined (Chrome) ReferenceError: Variable undefined in strict mode (Edge)
Une erreur {{jsxref("ReferenceError")}}, uniquement en mode strict.
Une valeur a été affectée à une variable non-déclarée. Autrement dit, il y a eu une affectation qui n'utilise pas le mot-clé var
. Il existe certaines différences entre les variables déclarées et les variables non déclarées ce qui peut entraîner des résultats étranges. C'est pour cette raison que le moteur affiche une erreur en mode strict.
Trois choses à noter lorsqu'on évoque les variables déclarées/non déclarées :
Pour plus de détails et d'exemple, se référer à la page sur var
.
Les erreurs à propos des affectations sur les variables non déclarées se produisent uniquement en mode strict. En mode non-strict, elles sont ignorées silencieusement.
Ici, la variable truc
n'est pas déclarée :
function toto() { "use strict"; truc = true; } toto(); // ReferenceError: assignment to undeclared variable truc
Afin de déclarer truc
, on peut ajouter le mot-clé var
devant.
function toto() { "use strict"; var truc = true; } toto();