JavaScript mainīgie “local scope” un “global scope”

Local scope un global scope ir divi dažādi mainīgo pieejamības līmeņi programmēšanā.

Local scope ir pieejamības līmenis, kas ir pieejams tikai noteiktā funkcijā vai blokā. Tātad, ja mainīgais ir definēts lokālā scope, tas ir pieejams tikai tajā funkcijā vai blokā, kurā tas ir definēts, un nav pieejams citās daļās no programmas.

Global scope ir pieejamības līmenis, kas ir pieejams visā programmā. Tātad, ja mainīgais ir definēts global scope, tas ir pieejams visā programmā, un tas var tikt izmantots jebkurā funkcijā vai blokā.

Lai izmantotu mainīgo no global scope lokālā scope, ir nepieciešams to izmantot ar speciālu atslēgu vārdu “global”, lai paskaidrotu, ka mainīgais tiek izmantots no global scope.

Viena no galvenajām atšķirībām starp local un global scope ir to pieejamība citās daļās no programmas. Local scope mainīgie ir pieejami tikai tajā funkcijā vai blokā, kurā tie ir definēti, bet global scope mainīgie ir pieejami visā programmā.

Šeit ir trīs piemēri, kur mainīgie ir definēti lokālā scope:

1.Funkcijā definēts local scope:

def greet(name):
greeting = "Hello, " + name + "!"
print(greeting)

greet("John")
print(greeting)

Šajā piemērā mainīgais “greeting” ir definēts lokālā scope funkcijā “greet”. Tā ir pieejama tikai funkcijā “greet” un nav pieejama citās daļās no programmas, tāpēc, ja mēģinām izprintēt “greeting” ārpus funkcijas, mēs saņemsim kļūdu “NameError: name ‘greeting’ is not defined”.

 

2. Ciklā definēts local scope:

for i in range(5):
num = i
print(num)

print(num)

Šajā piemērā mainīgais “num” ir definēts lokālā scope ciklā “for”. Tā ir pieejama tikai ciklā “for” un nav pieejama citās daļās no programmas, tāpēc, ja mēģinām izprintēt “num” ārpus cikla, mēs saņemsim kļūdu “NameError: name ‘num’ is not defined”.

3. Blokā definēts local scope:

if True:
message = "This is a message."
print(message)

print(message)

Šajā piemērā mainīgais “message” ir definēts lokālā scope blokā “if”. Tā ir pieejama tikai blokā “if” un nav pieejama citās daļās no programmas, tāpēc, ja mēģinām izprintēt “message” ārpus bloka, mēs saņemsim kļūdu “NameError: name ‘message’ is not defined”.

Tātad:

Globālais apjoms jeb scope ir tāds apjoms, kurā mainīgie un funkcijas tiek definētas jebkurā vietā jūsu kodā. Tie ir pieejami visā kodā un tiek uzskatīti par globālajām mainīgajām un funkcijām.

Local apjoms, jeb scope ir tāds apjoms, kurā mainīgie un funkcijas tiek definēti noteiktā kontekstā, piemēram, funkcijā vai ciklā. Tie ir pieejami tikai šajā noteiktajā kontekstā un tiek uzskatīti par lokālajām mainīgajām un funkcijām.

Piemēri:

// Globālā scope piemērs
let globalVariable = 'Šis ir global scope';

function globalFunction() {
console.log('Šī ir globālā funkcija');
}

// Lokālā scope piemērs
function localScopeExample() {
let localVariable = 'Šis ir lokālais mainīgais';

function localFunction() {
console.log('Šī ir lokālā funkcija');
}
}

console.log(localVariable); // ReferenceError: localVariable is not defined
localFunction(); // ReferenceError: localFunction is not defined

Šajā piemērā, “globalVariable” un “globalFunction” ir pieejamas visā kodā un tiek uzskatītas par globālajiem mainīgajiem un funkcijām. Savukārt “localVariable” un “localFunction” ir pieejamas tikai “localScopeExample” funkcijā un tiek uzskatītas par lokālajiem mainīgajiem un funkcijām. Tāpēc, ja mēģināt piekļūt “localVariable” vai “localFunction” ārpus “localScopeExample” funkcijas, tie nekļūs pieejami un radīs “ReferenceError” kļūdu.

 

Loading

Noderīgs raksts? Dalies ar citiem: