Junior
Кай вақт бояд тағйирёбҳои var, let ва const истифода шаванд?
sobes.tech AI
Ҷавоб аз AI
var: Агар ба шумо тағйирёбандаи бо доираи функсия ё агар хоҳед, ки эълонро (hoisting) бо оғозёбӣundefinedбаланд баред. Раванди кӯҳна, барои коди нав тавсия дода намешавад.let: Агар ба шумо тағйирёбандаи бо доираи блокӣ лозим бошад, ки метавонад такрор таъриф шавад (қиммати онро тағйир додан мумкин аст). Барои аксар ҳолатҳо, ки қиммати тағйирёбанда метавонад тағйир ёбад, мувофиқ аст.const: Агар ба шумо тағйирёбандаи бо доираи блокӣ лозим бошад, ки қиммати он пас аз оғозёбӣ тағйирнопазир бошад. Барои қимматҳое, ки дар давоми иҷрои коди тағйир ёбанда набояд бошанд, истифода мешавад (константҳо, истинодҳо ба унсурҳои DOM, функсияҳо).
// Мисоли истифодаи let
let count = 0;
if (true) {
let count = 1; // Тағйирёбандаи нав дар доираи блок
console.log(count); // 1
}
console.log(count); // 0
// Мисоли истифодаи const
const PI = 3.14159;
// PI = 3; // Хатогӣ: Таъин ба тағйирёбандаи констант.
const user = { name: 'Alex' };
user.name = 'John'; // Иҷозат дода шудааст, хосиятҳои объект тағйир меёбанд, на истинод
console.log(user); // { name: 'John' }
// Мисоли истифодаи var (намунаи тавсия дода намешавад)
var x = 10;
if (true) {
var x = 20; // Тағйирёбандаро дар доираи функсия такрор таъриф мекунад
console.log(x); // 20
}
console.log(x); // 20