Глобальные и локальные переменны JavaScript

JavaScript поддерживает использование глобальных и локальных переменных.

Глобальные переменные определяются вне функций и доступны во всем скрипте. Они могут быть определены с помощью ключевого слова var, let или const, без использования ключевого слова. Если переменная объявлена без ключевого слова, она автоматически становится глобальной. Глобальные переменные могут быть использованы в любом месте скрипта и могут быть изменены из любой функции или блока кода.

Локальные переменные определяются внутри функций или блоков кода и доступны только внутри этой функции или блока кода. Они также могут быть определены с помощью ключевых слов var, let или const. Локальные переменные не могут быть использованы за пределами функции или блока кода, в которых они определены.

Использование локальных переменных часто предпочтительнее, чем использование глобальных, потому что они помогают избежать нежелательных побочных эффектов и конфликтов имен переменных. Вместо этого локальные переменные помогают организовать код, делая его более читабельным и легко поддерживаемым.

Примеры глобальных и локальных переменных в JavaScript:

Глобальная переменная:

var globalVariable = "Hello, world!"; // глобальная переменная

function sayHello() {
  console.log(globalVariable); // доступ к глобальной переменной из функции
}

sayHello(); // выводит "Hello, world!" в консоль

Локальная переменная:

function sayHello() {
  var localVariable = "Hello, world!"; // локальная переменная
  console.log(localVariable); // доступ к локальной переменной внутри функции
}

sayHello(); // выводит "Hello, world!" в консоль
console.log(localVariable); // ошибка: локальная переменная не доступна за пределами функции

Кроме того, в JavaScript есть также блочные области видимости, определенные с помощью ключевых слов let и const. Переменные, определенные с помощью этих ключевых слов, доступны только внутри блока, в котором они были объявлены, и не могут быть изменены за пределами этого блока.

Пример локальной переменной, определенной с помощью let в блоке кода:

function sayHello() {
  let message = "Hello, world!"; // локальная переменная в блоке кода
  if (true) {
    let message = "Hello, there!"; // другая локальная переменная внутри блока if
    console.log(message); // выводит "Hello, there!"
  }
  console.log(message); // выводит "Hello, world!"
}

sayHello();

В этом примере, блочная область видимости let позволяет использовать одно и то же имя переменной message в разных блоках кода без конфликта имен.