Tässä opetusohjelmassa opit JavaScriptin let- ja var-eroista esimerkkien avulla.
JavaScriptissä molemmat avainsanat var
ja let
niitä käytetään muuttujien ilmoittamiseen.
let
Avainsana otettiin käyttöön uudempi versio JavaScript tunnetaan ES6 (ES2015) . Ja se on suositeltava tapa ilmoittaa muuttujat.
JavaScript antoi Vs var
Tässä on yleiskatsaus let
ja var
.
päästää | var |
---|---|
let on lohkottu. | var on funktion laajuus. |
let ei salli muuttujien uudelleen ilmoittamista. | var sallii muuttujien ilmoittamisen uudelleen. |
Nostamista ei tapahdu vuokralla. | Nostoa esiintyy var. |
JavaScripti antoi Vs: n variaatioksi Local Scope -sovelluksessa
var on funktion laajuus
Funktion sisällä ilmoitettua muuttujaa kanssa var
voidaan käyttää missä tahansa funktion sisällä. Esimerkiksi,
// program to print text // variable a cannot be used here function greet() ( // variable a can be used here var a = 'hello'; console.log(a); ) // variable a cannot be used here greet(); // hello
Yllä olevassa ohjelmassa muuttuja a ilmoitetaan var
. Muuttujaa a voidaan käyttää missä tahansa funktion sisällä greet
.
let on lohkottu
Muuttujalla, jolla on ilmoitettu, let
pääsee vain koodilohkon sisällä. Esimerkiksi,
// program to print the text // variable a cannot be used here function greet() ( let a = 'hello'; // variable b cannot be used here if(a == 'hello')( // variable b can be used here let b = 'world'; console.log(a + ' ' + b); ) // variable b cannot be used here console.log(a + ' ' + b); // error ) // variable a cannot be used here greet();
Tuotos
hei maailma Uncaught ReferenceError: b ei ole määritelty
Yllä olevassa ohjelmassa muuttuja a ilmoitetaan funktion sisällä, ja sitä voidaan käyttää missä tahansa funktion sisällä (a tulee funktion laajuudeksi).
Muuttuja b kuitenkin ilmoitetaan lohkolausekkeen sisällä if
. b on lohkottu ja siihen pääsee vain if
lohkon sisällä .
Siksi, kun yrität käyttää b: tä if
lohkon ulkopuolella , tapahtuu virhe (kuten ohjelmassa yllä on esitetty).
Huomautus : Muuttujat julisti sisällä toiminto on toiminto scoped molemmille var
ja let
.
let ei salli muuttujien uudelleen ilmoittamista
1. Muuttuja, jolla on ilmoitettu, var
voidaan ilmoittaa uudelleen. Esimerkiksi,
var a = 5; // 5 var a = 3; // 3
Muuttujaa, jolla on ilmoitettu, let
ei voida ilmoittaa uudelleen samassa lohkossa tai samassa laajuudessa. Esimerkiksi,
let a = 5; let a = 3; // error
Tuotos
Uncaught SyntaxError: Tunniste 'a' on jo ilmoitettu
2. Muuttujan, jolla var
on eri laajuus tai lohko, ilmoittaminen muuttaa myös ulomman muuttujan arvoa. Esimerkiksi,
var a = 5; console.log(a); // 5 ( var a = 3; console.log(a); // 3 ) console.log(a); // 3
Muuttujan, jolla let
on eri laajuus tai lohko, uudelleen julistaminen käsittelee muuttujaa eri muuttujana. Ja muuttujan arvo ulkopuolella ei muutu. Esimerkiksi,
let a = 5; console.log(a); // 5 ( let a = 3; console.log(a); // 3 ) console.log(a); // 5
3. Kun var
silmukassa käytetään muuttujaa, jolla on ilmoitettu , muuttujan arvo muuttuu. Esimerkiksi,
var a = 2; for(var a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 3
Yllä olevassa ohjelmassa for
silmukka ilmoittaa uudelleen muuttujan a. Näin ollen arvo a
muutetaan 3 lopussa.
Kun muuttuja julistettu kanssa let käytetään silmukka, arvo muuttuja ei muutu. Esimerkiksi,
let a = 2; for(let a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 2
In the above program, for
loop treats variable a as a different variable than the one declared above. And the scope of that variable is only inside the for
loop. Hence the value of variable a remains 2 at the end.
let Doesn't Allow Hoisting
The variables declared with var
are hoisted to the top of the scope of the program. For example,
console.log(a); var a; // undefined (not an error)
The keyword let
does not allow hoisting. For example,
console.log(a); let a; // Uncaught ReferenceError: a is not defined
If you want to learn more about hoisting, visit JavaScript Hoisting.
let and var Browser Support
Most of the modern browsers support the use of let
. However, some browsers do not fully support let
.
To learn more, visit JavaScript let browser support.
Huomautus : Jos maailmanlaajuisia, molemmat var
ja let
käyttäytyvät samalla tavalla. Esimerkiksi,
var a = 5; // 5
Muuttuja a on maailmanlaajuinen, ja sitä voidaan käyttää missä tahansa ohjelmassa.
let a = 5; // 5
Muuttuja a on maailmanlaajuinen, ja sitä voidaan käyttää missä tahansa ohjelmassa.