JavaScript -omvang
Omvang bepaal die toeganklikheid (sigbaarheid) van veranderlikes.
JavaScript het 3 tipes omvang:
- Blok omvang
- Funksie omvang
- Globale omvang
Blok Omvang
Voor ES6 (2015) het JavaScript net Global Scope en Function Scope gehad .
ES6 het twee belangrike nuwe JavaScript-sleutelwoorde bekendgestel: let
en const
.
Hierdie twee sleutelwoorde bied Block Scope in JavaScript.
Veranderlikes wat binne 'n { }-blok verklaar word, kan nie van buite die blok verkry word nie:
Voorbeeld
{
let x = 2;
}
// x can NOT be used here
Veranderlikes wat met die var
sleutelwoord verklaar word, kan NIE blokomvang hê nie.
Veranderlikes wat binne 'n { }-blok verklaar word, kan van buite die blok verkry word.
Voorbeeld
{
var x = 2;
}
// x CAN be used here
Plaaslike Omvang
Veranderlikes wat binne 'n JavaScript-funksie verklaar word, word PLAASLIK vir die funksie.
Voorbeeld
// code here can NOT use carName
function myFunction() {
let carName = "Volvo";
// code here CAN use carName
}
// code here can NOT use carName
Plaaslike veranderlikes het Funksie Omvang :
Hulle kan slegs van binne die funksie verkry word.
Aangesien plaaslike veranderlikes slegs binne hul funksies herken word, kan veranderlikes met dieselfde naam in verskillende funksies gebruik word.
Plaaslike veranderlikes word geskep wanneer 'n funksie begin, en uitgevee wanneer die funksie voltooi is.
Funksie Omvang
JavaScript het funksie-omvang: Elke funksie skep 'n nuwe omvang.
Veranderlikes wat binne 'n funksie gedefinieer is, is nie toeganklik (sigbaar) van buite die funksie nie.
Veranderlikes verklaar met var
, let
en const
is redelik soortgelyk wanneer dit in 'n funksie verklaar word.
Hulle het almal Funksie Omvang :
function myFunction() {
var carName = "Volvo";
// Function Scope
}
function myFunction() {
let carName = "Volvo"; //
Function Scope
}
function myFunction() {
const carName = "Volvo"; //
Function Scope
}
Globale JavaScript-veranderlikes
'n Veranderlike wat buite 'n funksie verklaar word, word GLOBAL .
Voorbeeld
let carName = "Volvo";
// code here can use carName
function myFunction() {
// code here can also use carName
}
'n Globale veranderlike het Global Scope :
Alle skrifte en funksies op 'n webblad het toegang daartoe.
Globale Omvang
Veranderlikes wat globaal verklaar is (buite enige funksie) het Global Scope .
Globale veranderlikes kan vanaf enige plek in 'n JavaScript-program verkry word.
Veranderlikes verklaar met var
, let
en const
is redelik soortgelyk wanneer dit buite 'n blok verklaar word.
Hulle het almal globale omvang :
var x = 2;
// Global scope
let x = 2; //
Global scope
const x = 2; //
Global scope
JavaScript veranderlikes
In JavaScript is voorwerpe en funksies ook veranderlikes.
Omvang bepaal die toeganklikheid van veranderlikes, voorwerpe en funksies van verskillende dele van die kode.
Outomaties Global
As jy 'n waarde toeken aan 'n veranderlike wat nie verklaar is nie, sal dit outomaties 'n GLOBALE veranderlike word.
Hierdie kodevoorbeeld sal 'n globale veranderlike verklaar carName
, selfs al is die waarde binne 'n funksie toegeken.
Voorbeeld
myFunction();
// code here can use carName
function myFunction() {
carName = "Volvo";
}
Streng modus
Alle moderne blaaiers ondersteun JavaScript in "Streng modus".
Jy sal meer leer oor hoe om streng modus te gebruik in 'n latere hoofstuk van hierdie tutoriaal.
In "Streng modus" is onverklaarde veranderlikes nie outomaties globaal nie.
Globale veranderlikes in HTML
Met JavaScript is die globale omvang die JavaScript-omgewing.
In HTML is die globale omvang die venstervoorwerp.
Globale veranderlikes wat met die var
sleutelwoord gedefinieer word, behoort aan die vensterobjek:
Voorbeeld
var carName = "Volvo";
// code here
can use window.carName
Globale veranderlikes wat met die let
sleutelwoord gedefinieer word, behoort nie aan die vensterobjek nie:
Voorbeeld
let carName = "Volvo";
// code here can not use window.carName
Waarskuwing
MOENIE globale veranderlikes skep tensy jy van plan is nie.
Jou globale veranderlikes (of funksies) kan venster veranderlikes (of funksies) oorskryf.
Enige funksie, insluitend die vensterobjek, kan jou globale veranderlikes en funksies oorskryf.
Die leeftyd van JavaScript-veranderlikes
Die leeftyd van 'n JavaScript-veranderlike begin wanneer dit verklaar word.
Funksie (plaaslike) veranderlikes word uitgevee wanneer die funksie voltooi is.
In 'n webblaaier word globale veranderlikes uitgevee wanneer jy die blaaiervenster (of oortjie) toemaak.
Funksie Argumente
Funksie-argumente (parameters) werk as plaaslike veranderlikes binne funksies.