Foutmelding
ReferenceError: "x" is not defined
Type fout
Wat is er fout gegaan?
Er is ergens een niet bestaande variabele genoemd. Deze variabele moet je declareren, of je moet er voor zorgen dat deze beschikbaar is in het script of scope.
Notitie: Wanneer je een library (zoals jQuery) laadt, zorg er dan voor dat die geladen is voordat je de library's variabelen wilt gebruiken, zoals "$". Zet de <script>
tag die de library laadt, voor de code die de variabele gebruikt.
Voorbeelden
Variabele niet gedefineerd
foo.substring(1); // ReferenceError: foo is not defined
De "foo" variable is nergens gedefineerd. De variabele moet een string zijn, zodat de String.prototype.substring()
method kan werken.
var foo = "bar";
foo.substring(1); // "ar"
Verkeerde scope
Een variabele moet beschikbaar zijn in de huidige context of execution. Variabelen gedefineerd binnen een functie kunnen niet van ergens anders buiten de functie worden benarderd, omdat de variabele alleenmaar in de scope van de functie gedefineerd is
function numbers () {
var num1 = 2,
num2 = 3;
return num1 + num2;
}
console.log(num1); // ReferenceError num1 is not defined.
Maar, een functie kan alle andere variabelen benaderen in de scope waarin hij gedefineerd is. Oftewel, een functie die in de global scope is gedefineerd, kan alle variabelen benaderen in de global scope.
var num1 = 2,
num2 = 3;
function numbers () {
return num1 + num2;
}
console.log(num1); // 2