JavaScript позволява Vs var (с примери)

В този урок ще научите за разликата между let и var в JavaScript с помощта на примери.

В JavaScript и двете ключови думи varи letсе използват за деклариране на променливи.

В letключовата дума е въведена в по-новата версия на JavaScript, известен като ES6 (ES2015) . И това е предпочитаният начин за деклариране на променливи.

JavaScript позволява Vs var

Ето преглед на разликите между letи var.

позволявам вар
let е с блоков обхват. var е обхват на функция.
let не позволява повторно деклариране на променливи. var позволява да се декларират променливи.
Повдигането не се случва в let. Повдигането става в var.

JavaScript позволява Vs var в Local Scope

var е обхват на функция

Променливата, декларирана във функция с, varможе да се използва навсякъде в рамките на функция. Например,

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

В горната програма променливата a е декларирана с var. Променливата a може да се използва навсякъде във функцията greet.

let е с блоков обхват

Променливата, декларирана с, letможе да бъде достъпна само вътре в блок от код. Например,

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

Изход

 hello world Uncaught ReferenceError: b не е дефиниран

В горната програма променливата a е декларирана във функцията и тя може да бъде достъпна навсякъде във функцията (a става функция с обхват).

Променливата b обаче се декларира вътре в ifблоковия оператор. b ще бъде с обхват на блока и достъпът до него ще бъде само вътре в ifблока.

Следователно, когато се опитате да получите достъп до b извън ifблока, възниква грешка (както е показано по-горе в програмата).

Забележка : Променливите, декларирани във функция, ще бъдат обхванати от функцията и за двете, varи за let.

let не позволява повторно деклариране на променливи

1. Променлива, декларирана с, varможе да бъде декларирана отново. Например,

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

Променлива, декларирана с, letне може да бъде повторно декларирана в същия блок или същия обхват. Например,

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

Изход

 Uncaught SyntaxError: Идентификаторът „а“ вече е деклариран

2. Предекларирането на променлива с varв различен обхват или блок променя и стойността на външната променлива. Например,

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

Предекларирането на променлива с letв различен обхват или блок третира тази променлива като различна променлива. И стойността на променлива отвън не се променя. Например,

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

3. Когато променлива, декларирана с, varсе използва в цикъл, стойността на тази променлива се променя. Например,

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

В горната програма forцикълът предекларира променливата a. Следователно стойността на aсе променя на 3 в края.

Когато променлива, декларирана с let, се използва в цикъл, стойността на променлива не се променя. Например,

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

В горната програма forцикълът третира променлива a като различна променлива от тази, декларирана по-горе. И обхватът на тази променлива е само вътре в forцикъла. Следователно стойността на променлива a остава 2 в края.

нека не позволява повдигане

Променливите, декларирани с, varса издигнати в горната част на обхвата на програмата. Например,

 console.log(a); var a; // undefined (not an error)

Ключовата дума letне позволява повдигане. Например,

 console.log(a); let a; // Uncaught ReferenceError: a is not defined

Ако искате да научите повече за повдигането, посетете JavaScript Hoisting.

let и var Поддръжка на браузъра

Повечето от съвременните браузъри поддържат използването на let. Някои браузъри обаче не поддържат напълно let.

За да научите повече, посетете JavaScript за поддръжка на браузъра.

Забележка : В случай на глобален обхват, както varи letще се държат по същия начин. Например,

 var a = 5; // 5

Променливата a ще бъде с общ обхват и може да бъде достъпна навсякъде в програмата.

 let a = 5; // 5

Променливата a ще бъде с общ обхват и може да бъде достъпна навсякъде в програмата.

Интересни статии...