Sobes.tech
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 = { номи: 'Тести дигар' }; // Хатогӣ