Sobes.tech
Junior

Mis vahe on let ja var vahel

sobes.tech AI

Vastus AI-lt

var omab funktsionaalset või globaalse ulatuse, seda saab uuesti deklareerida ja üle kirjutada. See on hoisting'ile allutatud ning algab undefined'ina. let omab ploki ulatust, seda saab üle kirjutada, kuid mitte samas ulatuses uuesti deklareerida. Samuti on see hoisting'ile allutatud, kuid asub "ajutises surnud tsoonis" kuni initsialiseerimiseni.

Võrdlustabel:

Omadus var let
Ulatus Funktsionaalne / Globaalne Ploki ulatus
Uuesti deklareerimine Jah Ei
Üle kirjutamine Jah Jah
Hoisting'ile allutatus Jah Jah
Initsialiseerimine undefined - (ajutine surnud tsoon)

Näide:

// var
functionideVar() {
  var x = 10;
  kui (tõene) {
    var x = 20; // x uuesti deklareerimine
    console.log(x); // 20
  }
  console.log(x); // 20
}

// let
functionideLet() {
  let y = 10;
  kui (tõene) {
    let y = 20; // uus y muutuv ploki ulatuses
    console.log(y); // 20
  }
  console.log(y); // 10
}

näideVar();
näideLet();