Domeniul de aplicare al variabilelor de funcție în JavaScript - Variabile globale și locale. Domeniul de aplicare al variabilelor Javascript Variabilele locale și globale

Acasă / Instalarea programelor

Toate variabilele și funcțiile globale sunt de fapt proprietăți și metode ale unui obiect special numit obiect global.

Un obiect global este un obiect obișnuit care este creat automat când pornește interpretul.

În JavaScript, rolul obiectului global este jucat de obiectul Window. Acest obiect are o proprietate de fereastră care se referă la obiectul Window în sine. Obiectul Window este un obiect global și, în plus, conține o serie de proprietăți și metode proprii de lucru cu fereastra browserului.

ÎN codul programului Un obiect global de nivel superior poate fi, de asemenea, referit folosind acest cuvânt cheie:

Alert(aceasta === fereastra); // adevărat

Deoarece variabilele globale sunt proprietăți ale unui obiect global, atunci când lucrăm cu o variabilă globală, lucrăm de fapt cu proprietățile ferestrei:

Var num = 10; alert(window.num); // 10

În loc să declarați o variabilă folosind cuvântul cheie var, puteți crea o variabilă specificând în mod explicit o nouă proprietate pentru obiectul Window:

Fereastra.num = 10; alert(num); // 10

Rețineți că, deși variabilele globale sunt de fapt proprietăți ale obiectului Window, nu este necesar să prefixați numele variabilei:

Var num = 10; alert(num); // 10 alert(window.num); // 10. La fel ca alert(num);

Dacă o variabilă globală este declarată folosind cuvântul cheie var sau let, se creează o proprietate neconfigurabilă, adică o proprietate care nu poate fi ștearsă folosind operatorul delete:

Var num = 10; alertă (șterge num); // false, variabila nu este ștearsă

Dacă atribuiți o valoare unei variabile nedeclarate, interpretul JavaScript va crea automat o variabilă globală. Variabilele create în acest fel devin proprietăți obișnuite, personalizate ale obiectului global, adică pot fi șterse folosind operatorul de ștergere:

Num = 10; alertă (șterge num); // adevărat, variabila ștearsă

Metode Descrierea metodei
decodeURI()Returnează un șir care conține URI-ul decodat.
decodeURIComponent()Returnează un șir care conține porțiunea decodificată a URI-ului.
encodeURI()Returnează un șir care conține URI-ul codificat.
encodeURIComponent()Returnează un șir care conține porțiunea codificată a URI-ului.
eval()Funcția eval() execută codul transmis sub formă de șir. Codul transmis unei funcții este executat în domeniul în care a fost apelată funcția.
este finit()Convertește argumentul într-un număr (dacă este necesar) și returnează adevărat dacă argumentul conține orice altă valoare decât NaN, infinit pozitiv și infinit negativ. În aceste trei cazuri, se întoarce fals.
isNaN()Determină dacă argumentul transmis este NaN sau nu.
parseFloat()Analizează un argument șir și returnează un număr în virgulă mobilă sau NaN.
parseInt()Analizează un argument șir și returnează un număr întreg sau NaN.

O zi bună, fani JavaScript și abonații mei fideli. În postarea de astăzi, vă voi spune în detaliu despre cum sunt create variabilele globale și locale în JavaScript. Cu siguranță voi defini termeni importanți, voi vorbi despre caracteristicile declarării și inițializării variabilelor, voi descrie ce este un domeniu și cum funcționează elementele create în el.

Toate acestea se aplică celor mai de bază cunoștințe de bază ale limbii. Fără să înțelegeți toate acestea, nu veți putea să avansați și să vă dezvoltați abilitățile de programare js. În plus, conceptele cheie îți vor fi utile nu doar în această specializare, ci și în domeniul IT în general. Ei bine, să începem!

Ce este o variabilă și cum este creată?

O variabilă este un element al unui limbaj de programare pentru care este alocată o zonă de memorie și în care sunt stocate anumite valori.

Pot exista un număr mare de variabile și toate trebuie să aibă un nume unic.

Există două tipuri de variabile: globale și locale. Diferența lor constă numai în domeniul diferit al variabilelor. Astfel, elementele globale sunt vizibile pe întregul cod, iar cele locale sunt vizibile doar în zona mică în care au fost declarate.

Apropo, încearcă încă din prima zi, din primul tău cod, să numești elementele prin nume logice și ușor de înțeles. Pentru că mai târziu, când lucrați cu programe grele, după o anumită perioadă de timp nu vă veți mai aminti ce înseamnă, de exemplu, „aa1” sau „perem3”.

Și absolut nimic nu este clar din titlu! Acest lucru nu este atât de rău, la urma urmei, nu este atât de greu să-ți înțelegi propriile scrieri. Ce vei face dacă ți se va da sarcina de a finaliza sarcini într-un alt program despre care nu ai auzit până acum? Cu astfel de nume, analiza implementării software-ului va ucide mult timp util.

Am citit notația, acum să revenim la declararea variabilelor.

Pentru a crea o variabilă, trebuie să scrieți mai întâi cuvântul cheie var și apoi numele în sine. Cam asa arata:

var text = „Bună, utilizator!”

După aceasta, textul este accesat fără „var”:

text = „Text nou”.

În acest caz, valoarea va fi suprascrisă.

Pentru o mai bună înțelegere, luați în considerare un exemplu în care este creată o singură variabilă. Ne vom întoarce la sensul său înainte și după rescriere.

1 2 3 4 var text = „Bună, utilizator!”; alertă(text); // va imprima „Bună, utilizator!” text= „Text nou!”; alertă(text); // va tipări „Text nou!”

var text = „Bună, utilizator!”; alertă(text); // va imprima „Bună, utilizator!” text= „Text nou!”; alertă(text); // va tipări „Text nou!”

Caracteristicile obiectelor globale

Toate obiectele create în codul js sunt împărțite în globale și locale. Mai sus am explicat care este diferența dintre ele. Acum să aruncăm o privire mai atentă asupra obiectelor globale.

Toate sunt funcții și variabile care sunt declarate în corpul principal al codului, de exemplu. nu în interiorul nici unei funcții. Toate acestea în js devin automat proprietăți ale unui obiect global, care în browsere este clar disponibil sub cuvântul fereastră. Să ne uităm la un exemplu.

var pret = 145; // creează o variabilă globală

alertă(fereastră.preț); // răspuns: 145

Până acum totul este simplu, dar fiți pregătiți pentru capcane. Uneori, fără a cunoaște specificul salvării și suprascrierii valorilor variabilelor, puteți suprascrie parametri foarte importanți. Astfel de erori sunt destul de greu de urmărit și imposibil de găsit folosind compilatoare. Prin urmare, analizați cu atenție următorul material.

Capcane și domeniul de aplicare

Pentru a înțelege mai bine problema, voi arăta mai întâi program mic, unde în funcție voi crea o variabilă locală, iar apoi în afara granițelor sale - una globală.

function test() ( p = 2; return p; ) alert(p); // nedefinit p = „text important”; alertă(p); // va afișa „text important” test(); // apelează funcția alert(p); // va tipări 2

Inițial, în funcția de testare, am inițializat o variabilă locală cu valoarea 2, apoi am creat o variabilă text globală care stochează câteva date importante.

Și aici apare acel „bloc subacvatic”.

În primul rând, datorită faptului că am folosit crearea de elemente conform regulilor standardului JavaScript învechit, toate variabilele „p” au fost create numai în momentul atribuirii (la folosirea directivei var, variabilele sunt create imediat cu valoarea nedefinit, iar în timpul inițializării prin „= » valoarea este suprascrisă).

În al doilea rând, în acest caz, pentru a atribui o valoare elementelor create implicit în js, se folosește una existentă sau se creează o nouă variabilă globală. Prin urmare, în exemplul de mai sus, după apelarea funcției de testare, valoarea „p” globală a fost pierdută.

Pentru a evita blocările, utilizați întotdeauna cuvântul cheie var. Apoi toate obiectele vor fi declarate explicit și vor fi create altele noi.

Iată exemplul corectat:

function test() ( var p = 2; alert (p); return p; ) alert(p); // undefined var p = "text important"; alertă(p); // va afișa „text important” test(); // apelează funcția, în acest caz va afișa 2 alert(p); // va afișa „text important”

Acum codul funcționează corect. După cum ați observat, domeniul de aplicare al „p” local este în cadrul funcției de testare, iar cel global este în restul codului.

Câteva cuvinte despre constante

Ca toate celelalte limbaje de programare, JavaScript are constante. Pentru cei care nu știu ce este, o să atașez definiția.

O constantă este un tip de variabilă a cărei valoare rămâne neschimbată.

Conform regulilor de sintaxă în js, numele lor este întotdeauna scris cu litere mici (majuscule). De exemplu,

var MAIN_COLOR = „#fff”

Nu într-un limbaj de scripting mijloace tehnice, ceea ce ar face din constantă cu adevărat o constantă. De fapt, sunt variabile obișnuite care pot fi suprascrise. Cu toate acestea, conform regulilor, dezvoltatorii folosesc aceste elemente cu majuscule în nume ca constante și nu le schimbă semnificația în timpul scrierii codului.

Scopul principal al constantelor este de a stoca șiruri de caractere complexe, numere importante sau alte valori în care, atunci când sunt rescrise, este ușor să faceți o greșeală de tipar sau să nu fie modificate niciodată, sau să simplificați codul. De exemplu, constantele pot fi folosite pentru a stoca cereri repetate frecvent pentru

Variabilele servesc drept „containere” pentru stocarea informațiilor.

Îți amintești de Algebra de liceu?

Îți amintești algebra școlară? x=5, y=6, z=x+y

Vă amintiți că o literă (de ex. x) ar putea fi folosită pentru a stoca o valoare (de ex. 5) și că ați putea folosi informațiile de mai sus pentru a calcula că valoarea lui z este 11?

Aceste litere sunt numite variabile, iar variabilele pot fi folosite pentru a stoca valori (x=5) sau expresii (z=x+y).

Variabile JavaScript

La fel ca în algebră, variabilele JavaScript sunt folosite pentru a stoca valori sau expresii.

Variabila poate avea un nume scurt, cum ar fi x, sau un nume mai descriptiv, cum ar fi carname.

Reguli pentru numele variabilelor JavaScript:

  • Numele variabilelor țin cont de majuscule (y și Y sunt două variabile diferite)
  • Numele variabilelor trebuie să înceapă cu o literă sau liniuță de subliniere

Notă: Deoarece JavaScript face distincție între majuscule și minuscule, numele variabilelor sunt, de asemenea, sensibile la majuscule.

Exemplu

Valoarea unei variabile se poate schimba în timp ce scriptul rulează.

Puteți face referire la o variabilă după numele ei pentru a-i afișa sau modifica valoarea.

Declararea (crearea) variabilelor JavaScript

Crearea de variabile în JavaScript este denumită mai frecvent „declararea” variabilelor.

Declarați variabile JavaScript folosind cuvântul cheie var:

După executarea instrucțiunilor de mai sus, variabila x va conține valoarea 5 și carname va conține valoarea Mercedes. Notă: Când atribuiți valoarea textului

variabilă, includeți-o între ghilimele.

Notă: Dacă declarați din nou o variabilă, aceasta nu își va pierde valoarea.

Variabile locale JavaScript Variabilă declarată în interior Funcții JavaScript

devine LOCAL și va fi disponibil numai în cadrul acestei funcții.

(variabila are domeniu local).

Puteți declara variabile locale cu același nume în diferite funcții deoarece variabilele locale sunt recunoscute în funcția în care sunt declarate.

Variabilele locale sunt distruse atunci când funcția iese.

Veți afla mai multe despre funcții în lecțiile ulterioare JavaScript.

Variabile globale JavaScript

Variabilele declarate în afara unei funcții devin GLOBALE și toate scripturile și funcțiile de pe pagină le pot accesa.

Variabilele globale sunt distruse atunci când închideți pagina.

Dacă declarați o variabilă fără a utiliza „var”, variabila devine întotdeauna GLOBALĂ.

Atribuirea de valori variabilelor JavaScript nedeclarate

Dacă atribuiți valori variabilelor care nu au fost încă declarate, variabilele vor fi declarate automat ca variabile globale.

Aceste oferte:

Veți afla mai multe despre operatori în următoarea lecție JavaScript.

Ultima actualizare: 04/05/2018

Toate variabilele din JavaScript au un domeniu specific în care pot acționa.

Variabile globale

Toate variabilele care sunt declarate în afara funcțiilor sunt globale:

var x = 5; fie d = 8; funcția displaySquare())( var z = x * x; console.log(z); )

Aici variabilele x și d sunt globale. Sunt accesibile de oriunde în program.

O variabilă definită în interiorul unei funcții este locală:

Funcția displaySquare())( var z = 10; console.log(z); fie b = 8; console.log(b); )

Variabilele z și b sunt locale, ele există doar în cadrul funcției. Ele nu pot fi utilizate în afara unei funcții:

Funcția displaySquare())( var z = 10; console.log(z); ) console.log(z); //eroare deoarece z nu este definit

Când o funcție își termină activitatea, toate variabilele definite în funcție sunt distruse.

Ascunderea variabilelor

Ce se întâmplă dacă avem două variabile - una globală și cealaltă locală - care au același nume:

Var z = 89; funcția displaySquare())( var z = 10; console.log(z); // 10 ) displaySquare(); // 10

În acest caz, funcția va folosi variabila z care este definită direct în funcție. Adică variabila locală o va ascunde pe cea globală.

var sau let

Când se utilizează instrucțiunea let, fiecare bloc de cod definește un nou domeniu în care există variabila. De exemplu, putem defini simultan o variabilă la nivel de bloc și la nivel de funcție:

Fie z = 10; function displayZ())( lat z = 20; ( lat z = 30; console.log("Block:", z); ) console.log("Function:", z); ) displayZ(); console.log("Global:", z);

Aici, în interiorul funcției displayZ, există un bloc de cod definit în care este definită variabila z. Ascunde variabila globală și variabila z definită la nivel de funcție. ÎN program real bloc ar putea reprezenta o funcție imbricată, bloc pentru buclă sau dacă constructe. Dar, în orice caz, un astfel de bloc definește un nou domeniu, în afara căruia variabila nu există.

Și în în acest caz, vom obține următoarea ieșire din consolă:

Bloc: 30 Funcție: 20 Global: 10

Cu operatorul var, nu putem defini o variabilă cu același nume atât într-o funcție, cât și într-un bloc de cod din acea funcție:

Funcția displaySquare())( var z = 20; ( var z = 30; // Eroare! Variabila z este deja definită console.log("Block:", z); ) console.log("Function:", z) ;

Adică, cu var putem defini o variabilă cu un singur nume fie la nivel de funcție, fie la nivel de bloc de cod.

constante

Tot ceea ce se aplică operatorului let se aplică și operatorului const, care vă permite să definiți constante. Blocurile de cod definesc domeniul de aplicare al constantelor, iar constantele definite pe blocurile de cod imbricate ascund constantele externe cu același nume:

Const z = 10; function displayZ())( const z = 20; ( const z = 30; console.log("Block:", z); // 30 ) console.log("Function:", z); // 20 ) displayZ ( ); console.log("Global:", z); // 10

Variabile nedeclarate

Dacă nu folosim acest cuvânt cheie atunci când definim o variabilă într-o funcție, atunci o astfel de variabilă va fi globală. De exemplu:

Funcția bar())( foo = "25"; ) bar(); console.log(foo); // 25

Chiar dacă variabila foo nu este definită nicăieri în afara funcției bar, ea este totuși disponibilă în afara funcției în context extern.

Ar fi diferit dacă nu numai că am atribui o valoare unei variabile, ci și dacă am defini-o:

Funcția bar())( var foo = "25"; ) bar(); console.log(foo); // eroare

modul strict

Definirea variabilelor globale în funcții poate duce la erori potentiale. Pentru a le evita, utilizați modul strict:

„utilizați strict”; function bar())( foo = "25"; ) bar(); console.log(foo);

În acest caz, vom primi eroarea SyntaxError: Unexpected identifier, care indică faptul că variabila foo nu este definită.

Există două moduri de a seta modul strict:

    adăugați expresia „utilizați strict” la începutul codului JavaScript, apoi modul strict va fi aplicat întregului cod

    adăugați expresia „utilizați strict” la începutul corpului funcției, apoi modul strict va fi aplicat numai acestei funcții

Variabile

Declararea variabilelor

Înainte de a putea folosi o variabilă în JavaScript, aceasta trebuie să fie declarată. Variabilele sunt declarate folosind cuvântul cheie var, după cum urmează:

Var i; var sum;

Folosind cuvântul cheie var o dată, puteți declara mai multe variabile:

Declararea variabilelor poate fi combinată cu inițializarea lor:

Var mesaj = „bună ziua”; var i = 0, j = 0, k = 0;

Dacă nu este specificată nicio valoare inițială în instrucțiunea var, atunci variabila este declarată, dar valoarea sa inițială rămâne nedefinită până când este schimbată de program.

Dacă aveți experiență în utilizarea limbajelor de programare cu tipuri de date statice, cum ar fi C# sau Java, este posibil să observați că declarațiile de variabile din JavaScript nu au o declarație de tip. Variabilele din JavaScript pot stoca valori de orice tip. De exemplu, în JavaScript puteți aloca un număr unei variabile și apoi alocați un șir aceleiași variabile:

Var i = 10; i = „bună ziua”;

Cu instrucțiunea var, puteți declara aceeași variabilă de mai multe ori. Dacă declarația repetată conține un inițializator, atunci acționează ca o instrucțiune obișnuită de atribuire.

Dacă încercați să citiți valoarea unei variabile nedeclarate, JavaScript va genera o eroare. În modul strict furnizat de standardul ECMAScript 5, apare și o eroare atunci când se încearcă atribuirea unei valori unei variabile nedeclarate. Cu toate acestea, din punct de vedere istoric, și atunci când nu este executat în modul strict, dacă atribuiți o valoare unei variabile care nu este declarată folosind o instrucțiune var, JavaScript va crea acea variabilă ca proprietate a obiectului global și va acționa la fel ca o variabilă declarată corect. Aceasta înseamnă că variabilele globale nu trebuie declarate. Cu toate acestea, acesta este considerat un obicei prost și poate provoca erori, așa că încercați întotdeauna să vă declarați variabilele folosind var.

Domeniu variabil

Sfera de aplicare a unei variabile este partea din program pentru care este definită variabila. O variabilă globală are un domeniu de aplicare global - este definită pentru întregul program JavaScript. În același timp, variabilele declarate în interiorul unei funcții sunt definite doar în corpul acesteia. Ele sunt numite locale și au sferă locală. Parametrii funcției sunt, de asemenea, considerați variabile locale, definite numai în corpul acelei funcții.

În cadrul unui corp de funcție, o variabilă locală are prioritate față de o variabilă globală cu același nume. Dacă declarați o variabilă locală sau un parametru de funcție cu același nume ca o variabilă globală, variabila globală va fi de fapt ascunsă:

Var rezultat = "global"; funcția getResult() (var rezultat = "local"; returnează rezultat; ); console.log(getResult()); // Afișează „local”

Când declarați variabile cu domeniu global, instrucțiunea var poate fi omisă, dar când declarați variabile locale, ar trebui să utilizați întotdeauna instrucțiunea var.

© 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații