У овом упутству ћете научити о разлици између лет и вар у ЈаваСцрипт-у помоћу примера.
У ЈаваСцрипт-у се обе кључне речи varи letкористе за декларисање променљивих.
letКључна реч је уведен у каснијој верзији ЈаваСцрипт познат као ЕС6 (ЕС2015) . И то је преферирани начин декларисања променљивих.
ЈаваСцрипт дозвољава Вс вар
Ево прегледа разлика између letи 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
У горњем програму променљива а је декларисана са var. Променљива а се може користити било где унутар функције greet.
нека је блок-опсега
Променљивој декларисаној са 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();
Оутпут
хелло ворлд Унцаугхт РеференцеЕррор: б није дефинисан
У горе наведеном програму, променљива а је декларисана унутар функције и може јој се приступити било где унутар функције (а постаје опсег функције).
Међутим, променљива б је декларисана унутар ifнаредбе блока. б ће бити обухваћен блоком и моћи ће му се приступити само унутар ifблока.
Стога, када покушате да приступите б изван ifблока, долази до грешке (као што је горе приказано у програму).
Напомена : Променљиве декларисане унутар функције биће опсега функција и за varи let.
нека не дозвољава поновно објављивање променљивих
1. Променљива декларисана са varможе се поново декларирати. На пример,
 var a = 5; // 5 var a = 3; // 3
Променљива декларисана са letне може се поново декларирати у истом блоку или истом опсегу. На пример,
 let a = 5; let a = 3; // error 
Оутпут
Унцаугхт СинтакЕррор: Идентификатор 'а' је већ проглашен
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мења у 3 .
Када се променљива декларисана лет користи у петљи, вредност променљиве се не мења. На пример,
 let a = 2; for(let a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 2
У горњем програму, forпетља третира променљиву а као различиту променљиву од оне која је горе декларисана. А опсег те променљиве је само унутар forпетље. Отуда вредност променљиве а на крају остаје 2 .
нека Не дозвољава подизање
Променљиве декларисане са varпостављене су на врх обима програма. На пример,
 console.log(a); var a; // undefined (not an error)
Кључна реч letне дозвољава подизање. На пример,
 console.log(a); let a; // Uncaught ReferenceError: a is not defined
Ако желите да сазнате више о дизању, посетите ЈаваСцрипт дизање.
лет анд вар подршка за прегледаче
Већина модерних прегледача подржава употребу let. Међутим, неки прегледачи не подржавају у потпуности let.
Да бисте сазнали више, посетите ЈаваСцрипт нека подршка за прегледаче.
Напомена : У случају глобалног опсега, и једно varи друго letпонашаће се на исти начин. На пример,
 var a = 5; // 5
Променљива а биће глобалног опсега и моћи ће јој се приступити било где у програму.
 let a = 5; // 5
Променљива а биће глобалног опсега и моћи ће јој се приступити било где у програму.








