"А ну вылезай" или области видимости в Javascript

JavaScript — это язык программирования, который используется для создания интерактивных веб-сайтов и приложений. При написании кода на JavaScript очень важно понимать, как работает область видимости.

Глобальная область видимости

Глобальная область видимости — это область видимости, в которой переменные могут быть использованы в любом месте кода. Переменные, объявленные в глобальной области видимости, могут быть доступны в любой функции или блоке кода.

Например:

let name = "John"; function greet() { console.log("Hello " + name); } greet(); // "Hello John"

В этом примере переменная name объявлена в глобальной области видимости и доступна внутри функции greet().

Блочная область видимости

Блочная область видимости — это область видимости, в которой переменные могут быть использованы только внутри блока кода, в котором они были объявлены. Блочную область видимости содержат if, else, while, for или просто { }

Например:

function greet() { let name = "John"; if (true) { let message = "Hello"; console.log(message + " " + name); } console.log(message); // ReferenceError: message is not defined } greet(); // "Hello John"

В этом примере переменная name объявлена в функции greet() и доступна только внутри блока if. Переменная message также объявлена в блоке if, и поэтому не может быть использована вне этого блока.

Однако переменная, объявленная через var сможет быть доступна вне блочной области.

"А ну вылезай" или области видимости в Javascript

Функциональная область видимости

Функциональная область видимости — это область видимости, в которой переменные могут быть использованы только внутри функции, в которой они были объявлены.

Например:

function greet() { let message = "Hello"; function sayHello() { let name = "John"; console.log(message + " " + name); } sayHello(); console.log(name); // ReferenceError: name is not defined } greet(); // "Hello John"

В этом примере переменная message объявлена в функции greet() и доступна внутри функции sayHello(). Переменная name объявлена внутри функции sayHello() и не может быть использована вне этой функции.

"А ну вылезай" или области видимости в Javascript

Заключение

Область видимости — это важный аспект при написании кода на JavaScript. Понимание глобальной, блочной и функциональной областей видимости поможет вам создавать более эффективный и понятный код.

Не забывайте ставить лайки и подписываться.

44
5 комментариев

Жаль, в 90% таких статей, не пишут про теневую область видимости =(

function func(exmp = 1, func2 = () => { console.log(exmp) }) {
var exmp = 2;
func2();
};

что выведется в консоль )

2
Ответить

Полагаю, параметры функций считаются отдельными областями видимости, поэтому вывод не реагирует на переопределение (var) exmp, а ищет переменную сначала в той области, где она находится. Однако если не переопределять, а присвоить новое значение, то выведет 2. Спасибо за новую интересную информацию :)

1
Ответить

А я точно на виси? 🤔

Ответить

Вроде как, а что такое?

Ответить