Sobes.tech
Junior

Mis on muutujate ulatus (scope) JavaScriptis?

sobes.tech AI

Vastus AI-lt

Mõõt määrab muutujate, funktsioonide ja objektide kättesaadavuse kindlas koodiosas.

JavaScriptis on mitu tüüpi vahemäära:

  • Globaalse vahemäära (Global Scope): Muutujad, mis on deklareeritud väljaspool kõiki funktsioone või plokke, on kättesaadavad igast koodiosast.
  • Funktsiooni vahemäär (Function Scope): Muutujad, mis on deklareeritud funktsiooni sees (enne ES6), on kättesaadavad ainult selles funktsioonis ja selle sees olevates funktsioonides.
  • Ploki vahemäär (Block Scope): Muutujad, mis on deklareeritud let ja const abil plokkides (näiteks {} või tsüklites), on kättesaadavad ainult selles plokis.

Näide:

// Globaalse vahemäära näide
let globalVar = "Ma olen globaalne";

function someFunction() {
  // Funktsiooni vahemäär (enne ES6)
  var functionVar = "Ma olen funktsiooni sees";
  console.log(globalVar); // kättesaadav globaalne muutuja

  if (true) {
    // Ploki vahemäär (let ja const)
    let blockVar = "Ma olen ploki sees";
    console.log(functionVar); // kättesaadav funktsiooni muutuja
    console.log(blockVar); // kättesaadav ploki muutuja
  }

  // console.log(blockVar); // viga: blockVar ei ole siin kättesaadav
}

someFunction();
// console.log(functionVar); // viga: functionVar ei ole siin kättesaadav

Muutujate deklareerimise märksõnad ja nende mõju vahemäärale:

Märksõna Enne ES6 vahemäär Pärast ES6 vahemäär
var Funktsionaalne Funktsionaalne
let - Plokiline
const - Plokiline

Vahemäära mõistmine on oluline, et vältida muutujate nimede konflikte ning kirjutada puhas ja ennustatav kood.