JavaScript -bereik
Scope bepaalt de toegankelijkheid (zichtbaarheid) van variabelen.
JavaScript heeft 3 soorten bereik:
- Bereik blokkeren
- Functiebereik:
- Globaal bereik:
Bereik blokkeren
Vóór ES6 (2015) had JavaScript alleen Global Scope en Function Scope .
ES6 introduceerde twee belangrijke nieuwe JavaScript-sleutelwoorden: let
en const
.
Deze twee trefwoorden bieden Block Scope in JavaScript.
Variabelen gedeclareerd binnen een { } blok zijn niet toegankelijk van buiten het blok:
Voorbeeld
{
let x = 2;
}
// x can NOT be used here
Variabelen gedeclareerd met het var
sleutelwoord kunnen GEEN blokbereik hebben.
Variabelen gedeclareerd binnen een { } blok zijn toegankelijk van buiten het blok.
Voorbeeld
{
var x = 2;
}
// x CAN be used here
Lokaal bereik
Variabelen gedeclareerd binnen een JavaScript-functie, worden LOKAAL voor de functie.
Voorbeeld
// code here can NOT use carName
function myFunction() {
let carName = "Volvo";
// code here CAN use carName
}
// code here can NOT use carName
Lokale variabelen hebben Function Scope :
Ze zijn alleen toegankelijk vanuit de functie.
Omdat lokale variabelen alleen in hun functies worden herkend, kunnen variabelen met dezelfde naam in verschillende functies worden gebruikt.
Lokale variabelen worden gemaakt wanneer een functie wordt gestart en verwijderd wanneer de functie is voltooid.
Functieomvang:
JavaScript heeft functiebereik: elke functie maakt een nieuw bereik aan.
Variabelen gedefinieerd binnen een functie zijn niet toegankelijk (zichtbaar) van buiten de functie.
Variabelen gedeclareerd met var
, let
en const
zijn vrij gelijkaardig wanneer gedeclareerd in een functie.
Ze hebben allemaal een functiebereik :
function myFunction() {
var carName = "Volvo";
// Function Scope
}
function myFunction() {
let carName = "Volvo"; //
Function Scope
}
function myFunction() {
const carName = "Volvo"; //
Function Scope
}
Globale JavaScript-variabelen
Een variabele die buiten een functie wordt gedeclareerd, wordt GLOBAL .
Voorbeeld
let carName = "Volvo";
// code here can use carName
function myFunction() {
// code here can also use carName
}
Een globale variabele heeft Global Scope :
Alle scripts en functies op een webpagina hebben er toegang toe.
Wereldwijd bereik
Variabelen die Globaal zijn gedeclareerd (buiten elke functie) hebben Global Scope .
Globale variabelen zijn overal in een JavaScript-programma toegankelijk.
Variabelen gedeclareerd met var
, let
en const
zijn vrij gelijkaardig wanneer gedeclareerd buiten een blok.
Ze hebben allemaal een wereldwijde reikwijdte :
var x = 2;
// Global scope
let x = 2; //
Global scope
const x = 2; //
Global scope
JavaScript-variabelen
In JavaScript zijn objecten en functies ook variabelen.
Scope bepaalt de toegankelijkheid van variabelen, objecten en functies uit verschillende delen van de code.
Automatisch globaal
Als u een waarde toewijst aan een variabele die niet is gedeclareerd, wordt deze automatisch een GLOBAL- variabele.
Dit codevoorbeeld zal een globale variabele declareren carName
, zelfs als de waarde binnen een functie is toegewezen.
Voorbeeld
myFunction();
// code here can use carName
function myFunction() {
carName = "Volvo";
}
Strikte modus
Alle moderne browsers ondersteunen het uitvoeren van JavaScript in "Strikte modus".
In een later hoofdstuk van deze zelfstudie leert u meer over het gebruik van de strikte modus.
In "Strikte modus" zijn niet-gedeclareerde variabelen niet automatisch globaal.
Globale variabelen in HTML
Met JavaScript is het globale bereik de JavaScript-omgeving.
In HTML is het globale bereik het vensterobject.
Globale variabelen gedefinieerd met het var
trefwoord behoren tot het vensterobject:
Voorbeeld
var carName = "Volvo";
// code here
can use window.carName
Globale variabelen die met het let
trefwoord zijn gedefinieerd, horen niet bij het vensterobject:
Voorbeeld
let carName = "Volvo";
// code here can not use window.carName
Waarschuwing
Maak GEEN globale variabelen tenzij u dat van plan bent.
Uw globale variabelen (of functies) kunnen venstervariabelen (of functies) overschrijven.
Elke functie, inclusief het vensterobject, kan uw globale variabelen en functies overschrijven.
De levensduur van JavaScript-variabelen
De levensduur van een JavaScript-variabele begint wanneer deze wordt gedeclareerd.
Functievariabelen (lokale) worden verwijderd wanneer de functie is voltooid.
In een webbrowser worden globale variabelen verwijderd wanneer u het browservenster (of tabblad) sluit.
Functieargumenten
Functieargumenten (parameters) werken als lokale variabelen binnen functies.