⊗jsPmFVNC 220 of 505 menu

Identyczne nazwy zmiennych w funkcjach w JavaScript

Jeśli zarówno na zewnątrz funkcji, jak i wewnątrz niej istnieje zmienna num. W tym przypadku jakiekolwiek zmiany ze zmienną lokalną num nie mają wpływu na zmienną globalną num:

let num = 1; // zmienna globalna function func() { let num = 2; // zmienna lokalna console.log(num); } func(); // wywołujemy funkcję, wypisze 2 console.log(num); // wypisze 1 - zmienna globalna nie zmieniła się

Ale jeśli zapomnimy zadeklarować zmienną lokalną num przez let, to wewnątrz funkcji nie utworzy się zmienna lokalna num, a po prostu zmieni się zmienna globalna:

let num = 1; function func() { num = 2; // zapomnieliśmy napisać let - zmieniamy zmienną zewnętrzną console.log(num); } func(); // wywołujemy funkcję, wypisze 2 console.log(num); // wypisze 2 - zmienna się zmieniła

Mogą tu zaistnieć dwie sytuacje: albo naprawdę chcieliśmy zmienić zmienną globalną (wtedy wszystko w porządku), albo zapomnieliśmy o let i przypadkowo zmieniliśmy zmienną globalną.

Drugi przypadek jest trudnym do wykrycia błędem, prowadzącym do nieprzewidywalnego zachowania skryptu. Dlatego zawsze, wprowadzając nową zmienną, deklaruj ją przez let.

Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:

let num = 1; function func() { num = 2; } func(); console.log(num);

Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:

let num = 1; function func() { let num = 2; } func(); console.log(num);
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć