⊗jsPmFVNC 220 of 505 menu

Samannimiset muuttujat funktioissa JavaScriptissä

Olkoon sekä funktion ulkopuolella että sisällä muuttuja num. Tässä tapauksessa minkä tahansa muutokset paikalliseen muuttujaan num eivät vaikuta millään tavalla globaaliin muuttujaan num:

let num = 1; // globaali muuttuja function func() { let num = 2; // paikallinen muuttuja console.log(num); } func(); // kutsutaan funktiota, tulostaa 2 console.log(num); // tulostaa 1 - globaali muuttuja ei muuttunut

Mutta jos unohdamme esitellä paikallisen muuttujan num avulla let, funktion sisälle ei synny paikallista muuttujaa num, vaan muuttuu vain globaali muuttuja:

let num = 1; function func() { num = 2; // unohdettiin kirjoittaa let - muutetaan ulkoista muuttujaa console.log(num); } func(); // kutsutaan funktiota, tulostaa 2 console.log(num); // tulostaa 2 - muuttuja muuttui

Tässä voi olla kaksi tilannetta: joko me todella halusimme muuttaa globaalia muuttujaa (silloin kaikki on kunnossa), tai unohdimme let ja vahingossa muutimme globaalin muuttujan.

Jälkimmäinen tapaus on vaikeasti havaittava virhe, joka johtaa skriptin arvaamattomaan käyttäytymiseen. Sen vuoksi aina, kun otat käyttöön uuden muuttujan, esittele se aina let:llä.

Päätä, käyttämättä koodia, mitä tulostetaan konsoliin:

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

Päätä, käyttämättä koodia, mitä tulostetaan konsoliin:

let num = 1; function func() { let num = 2; } func(); console.log(num);
Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää