JS let
let kalit so‘zi ES6 (2015)’da joriy etilgan
let bilan e’lon qilingan o‘zgaruvchilar blok Scope-ga (block scope) ega
let bilan e’lon qilingan o‘zgaruvchilar ishlatilishidan oldin e’lon qilinishi shart
let bilan e’lon qilingan o‘zgaruvchilarni bitta sohada qayta e’lon qilib bo‘lmaydi
Blok Scope (Block Scope)
ES6 (2015) dan oldin JavaScript-da Block Scope mavjud emas edi.
JavaScript-da Global Scope va Function Scope mavjud edi.
ES6 ikkita yangi JavaScript kalit so‘zlarini taqdim etdi: let va const.
Ushbu ikkita kalit so‘z JavaScript-da Block Scope-ni taqdim etdi:
Misol
{ } blokida e’lon qilingan o‘zgaruvchilarga blokdan tashqaridan kirish mumkin emas:
{
let x = 2;
}
// x can NOT be used here
Function Scope (Function Scope)
Funksiya ichida var, let yoki const bilan e’lon qilingan barcha o‘zgaruvchilar Funksiya doirasiga ega:
Misol
function myfunction() {
var x = 1;
let y = 2;
const z = 3;
}
//x can NOT be used here
//y can NOT be used here
//z can NOT be used here
Global Scope (Global Scope)
var bilan e’lon qilingan o‘zgaruvchilar har doim global ko‘rinish sohasiga (Global Scope) ega bo‘ladi.
var kalit so‘zi bilan e’lon qilingan o‘zgaruvchilar blok doirasiga ega EMAS:
Misol
{ } bloki ichida var bilan e’lon qilingan o‘zgaruvchilardan kirish mumkin
blokdan tashqarida:
{
var x = 2;
}
// x CAN be used here
Qayta e’lon qilib bo‘lmaydi
let bilan belgilangan o‘zgaruvchilarni qayta e’lon qilib bo‘lmaydi.
let bilan e’lon qilingan o‘zgaruvchini tasodifan qayta e’lon qila olmaysiz.
bilan let siz buni olmaysiz:
let x = "John Doe";
let x = 0;
var bilan belgilangan o‘zgaruvchilar qayta e’lon qilinishi mumkin.
var bilan buni amalga oshirishingiz mumkin:
var x = "John Doe";
var x = 0;
O‘zgaruvchilarni qayta e’lon qilish
var kalit so‘zi yordamida o‘zgaruvchini qayta e’lon qilish muammolarga olib kelishi mumkin.
Blok ichidagi o‘zgaruvchini qayta e’lon qilish o‘zgaruvchini blokdan tashqarida ham qayta e’lon qiladi:
Misol
var x = 10;
// Here x is 10
{
var x = 2;
// Here x is 2
}
// Here x is 2
O‘zingiz sinab ko‘ring »
let kalit so‘zidan foydalangan holda o‘zgaruvchini qayta e’lon qilish bu muammoni hal qilishi mumkin.
Blok ichidagi o‘zgaruvchini qayta e’lon qilish o‘zgaruvchini blokdan tashqarida qayta e’lon qilmaydi:
Misol
let x = 10;
// Here x is 10
{
let x = 2;
// Here x is 2
}
// Here x is 10
O‘zingiz sinab ko‘ring »
Var, let va const o‘rtasidagi farq
var , let o‘rtasidagi farq
va const ko‘lamli mexanizmlar, Qayta tayinlash qoidalari va JavaScript-da yotadi
Ko‘tarish (Ko‘tarish).
Zamonaviy JavaScript standartlari beixtiyor xatolarni kamaytirish uchun var dan qochishni tavsiya qiladi.
| Xususiyat | var | let | const |
|---|---|---|---|
| Qo‘llash doirasi | Funksiya yoki global qamrov | Blok doirasi {} | Blok doirasi {} |
| Qayta tayinlash | Yangilanishi mumkin | Yangilanishi mumkin | Yangilab bo‘lmaydi |
| Qayta deklaratsiya | Qayta e’lon qilinishi mumkin | Qayta e’lon qilib bo‘lmaydi | Qayta e’lon qilib bo‘lmaydi |
| Ko‘tarish (Hoisting) | Belgilanmagan sifatida ishga tushirildi | Ko‘tarilgan, ishga tushirilmagan | Ko‘tarilgan, ishga tushirilmagan |
Qayta e’lon qilish
JavaScript o‘zgaruvchisini var bilan qayta e’lon qilishga dasturning istalgan joyida ruxsat beriladi:
bilan let , bir xil blokdagi o‘zgaruvchini qayta e’lon qilishga ruxsat EMAS:
Misol
var x = 2; // Allowed
let x = 3; // Not allowed
{
let x = 2; // Allowed
let x = 3; // Not allowed
}
{
let x = 2; // Allowed
var x = 3; // Not allowed
}
Boshqa blokda let bilan o‘zgaruvchini qayta e’lon qilishga ruxsat beriladi:
Misol
let x = 2; // Allowed
{
let x = 3; // Allowed
}
{
let x = 4; // Allowed
}
O‘zingiz sinab ko‘ring »
let va hoisting
var bilan belgilangan o‘zgaruvchilar yuqoriga ko‘tariladi va istalgan vaqtda ishga tushirilishi mumkin.
Ma’nosi: O‘zgaruvchini e’lon qilinishidan oldin ishlatishingiz mumkin:
Agar siz yuk ko‘tarish haqida ko‘proq bilmoqchi bo‘lsangiz, JavaScript yuklash bo‘limini o‘rganing.
let bilan belgilangan o‘zgaruvchilar ham yuqoriga ko‘tariladi
blokning, lekin ishga tushirilmagan.
Ma’nosi: let o‘zgaruvchisini e’lon qilishdan oldin ishlatish ReferenceErrorga olib keladi:
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
