Sobes.tech
Junior

Šta je opseg (scope) promenljivih u JavaScript-u?

sobes.tech АИ

Одговор од АИ

Област видљивости одређује доступност променљивих, функција и објеката у одређеном делу кода.

У JavaScript-у постоји неколико типова области видљивости:

  • Глобална област (Global Scope): Променљиве које су изјављене изван било које функције или блока, доступне су са било ког места у коду.
  • Област функције (Function Scope): Променљиве које су изјављене унутар функције (пре ES6), доступне су само унутар те функције и унутрашњих функција.
  • Област блока (Block Scope): Променљиве изјављене помоћу let и const унутар блокова (нпр. {} или петљи), доступне су само унутар тог блока.

Пример:

// Глобална област
let globalVar = "Ја сам глобалан";

function someFunction() {
  // Област функције (пре ES6)
  var functionVar = "Ја сам унутар функције";
  console.log(globalVar); // Доступна глобална променљива

  if (true) {
    // Област блока (за let и const)
    let blockVar = "Ја сам унутар блока";
    console.log(functionVar); // Доступна променљива функције
    console.log(blockVar); // Доступна променљива блока
  }

  // console.log(blockVar); // Грешка: blockVar није доступна овде
}

someFunction();
// console.log(functionVar); // Грешка: functionVar није доступна овде

Кључне речи за декларацију променљивих и њихов утицај на област:

Кључна реч Област пре ES6 Област после ES6
var Функционална Функционална
let - Блокова
const - Блокова

Разумевање области је кључно за избегавање конфликата имена променљивих и писање чистог и предвидљивог кода.