JavaScript umožňuje Vs var (s príkladmi)

V tomto tutoriále sa pomocou príkladov dozviete o rozdieloch medzi let a var v JavaScripte.

V JavaScriptu, ako kľúčové slová vara letsú používané deklarovať premenné.

letKľúčových slov bol predstavený v novšej verzii JavaScriptu známe ako ES6 (ES2015) . A je to preferovaný spôsob deklarácie premenných.

JavaScript umožňuje Vs var

Tu je prehľad rozdielov medzi leta var.

nechajme var
nech je blokovaný. var je rozsah pôsobnosti.
let neumožňuje znovu deklarovať premenné. var umožňuje znovu deklarovať premenné.
K zdvíhaniu nedochádza pri let. K zdvíhaniu dochádza vo var.

JavaScript umožňuje Vs var v lokálnom rozsahu

var je rozsah pôsobnosti

Premennú deklarovanú vo vnútri funkcie s varje možné použiť kdekoľvek v rámci funkcie. Napríklad,

 // 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

Vo vyššie uvedenom programe je premenná a deklarovaná pomocou var. Premennú a je možné použiť kdekoľvek vo vnútri funkcie greet.

nech je blokovaný

Premenná deklarovaná ako letje prístupná iba v rámci bloku kódu. Napríklad,

 // 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();

Výkon

 ahoj svet Uncaught ReferenceError: b nie je definované

Vo vyššie uvedenom programe je premenná a deklarovaná vo vnútri funkcie a je k nej prístupný kdekoľvek vo vnútri funkcie (a sa stáva rozsahom funkcie).

Premenná b je však deklarovaná vo vnútri ifpríkazu bloku. b bude mať blokovaný rozsah a je prístupný iba vo vnútri ifbloku.

Preto sa pri pokuse o prístup k b mimo ifbloku vyskytne chyba (ako je uvedené vyššie v programe).

Poznámka : Premenné deklarované vo vnútri funkcie budú mať rozsah pôsobnosti pre obidve vara let.

let neumožňuje znova deklarovať premenné

1. Premenná deklarovaná s varsa dá znova deklarovať . Napríklad,

 var a = 5; // 5 var a = 3; // 3

Premenná deklarovaná s letnemôže byť deklarovaná v rovnakom bloku alebo rovnakom rozsahu. Napríklad,

 let a = 5; let a = 3; // error 

Výkon

 Uncaught SyntaxError: Identifikátor 'a' už bol deklarovaný

2. Deklarovanie premennej varv inom rozsahu alebo bloku zmení aj hodnotu vonkajšej premennej. Napríklad,

 var a = 5; console.log(a); // 5 ( var a = 3; console.log(a); // 3 ) console.log(a); // 3

Pri opätovnom vyhlásení premennej s letv inom rozsahu alebo bloku sa táto premenná považuje za inú premennú. A hodnota premennej mimo sa nemení. Napríklad,

 let a = 5; console.log(a); // 5 ( let a = 3; console.log(a); // 3 ) console.log(a); // 5

3. Ak sa premenná deklarovaná ako varpoužije v cykle, hodnota tejto premennej sa zmení. Napríklad,

 var a = 2; for(var a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 3

Vo vyššie uvedenom programe forslučka znovu deklaruje premennú a. Preto sa hodnota na konci azmení na 3 .

Keď sa v slučke použije premenná deklarovaná ako let , hodnota premennej sa nezmení. Napríklad,

 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.

Poznámka : V prípade globálneho rozsahu sa obidve vara letbudú správať rovnako. Napríklad,

 var a = 5; // 5

Premenná a bude mať globálny rozsah a bude k nej možné pristupovať kdekoľvek v programe.

 let a = 5; // 5

Premenná a bude mať globálny rozsah a bude k nej možné pristupovať kdekoľvek v programe.

Zaujímavé články...