Junior
Чӣ тавр метавон тағйирёбандаҳоро дар JavaScript эълон кард? Фарқиятҳоро байни ин усулҳо номбар кунед.
sobes.tech AI
Ҷавоб аз AI
Дар JavaScript, шумо метавонед тағйирёбҳоро дар се роҳ эълон кунед: var, let, const.
Фарқиятҳо байни онҳо:
| Фарқият | var |
let |
const |
|---|---|---|---|
| Маҳдудияти дидабарӣ | Функсионалӣ | Блокӣ | Блокӣ |
| Ивазшаванда | Имкон дорад | Имкон дорад | Имкон надорад |
| Hoisting | Дараҷаи эълон ва оғозро ба undefined мебардорад |
Дараҷаи эълон, аммо на оғоз | Дараҷаи эълон, аммо на оғоз |
Маслиҳатҳо:
// var
function exampleVar() {
var x = 10; // Маҳдудияти функсионалӣ
if (true) {
var x = 20; // Иҷозат аст дар дохили ҳамин функсия
console.log(x); // 20
}
console.log(x); // 20 (тағйирёбандаи x аз if дастрас аст)
}
console.log(x); // Хатогӣ: ReferenceError: x муайян нашудааст (x берун аз функсия намебинад)
// Hoisting var
console.log(a); // undefined
var a = 5;
console.log(a); // 5
// let
function exampleLet() {
let y = 10; // Блокӣ
if (true) {
let y = 20; // Иҷозат нест дар дохили ҳамин блок
console.log(y); // 20 (тағйирёбандаи y дигар)
}
console.log(y); // 10 (тағйирёбандаи y берун аз блок)
}
console.log(y); // Хатогӣ: ReferenceError: y муайян нашудааст
// Hoisting let
// console.log(b); // Хатогӣ: ReferenceError: Нест метавонад ба 'b' пеш аз оғоз дастрасӣ пайдо кунад
let b = 5;
console.log(b); // 5
// const
function exampleConst() {
const z = 10; // Блокӣ
// z = 20; // Хатогӣ: TypeError: Тағйир додани тағйирёбандаи константӣ. (Иҷозат нест)
if (true) {
const z = 20; // Иҷозат нест дар дохили ҳамин блок
console.log(z); // 20 (тағйирёбандаи дигар)
}
console.log(z); // 10 (тағйирёбандаи берун аз блок)
}
console.log(z); // Хатогӣ: ReferenceError: z муайян нашудааст
// Hoisting const
// console.log(c); // Хатогӣ: ReferenceError: Нест метавонад ба 'c' пеш аз оғоз дастрасӣ пайдо кунад
const c = 5;
console.log(c); // 5
// Барои объектҳо ва массивҳо, ки бо const эълон шудаанд, метавон мундариҷаро тағйир дод
const obj = { номи: 'Тест' };
obj.номи = 'Тести нав'; // Имкон дорад
// obj = { номи: 'Тести дигар' }; // Хатогӣ