"А ну вылезай" или области видимости в Javascript
JavaScript — это язык программирования, который используется для создания интерактивных веб-сайтов и приложений. При написании кода на JavaScript очень важно понимать, как работает область видимости.
Глобальная область видимости
Глобальная область видимости — это область видимости, в которой переменные могут быть использованы в любом месте кода. Переменные, объявленные в глобальной области видимости, могут быть доступны в любой функции или блоке кода.
Например:
В этом примере переменная name объявлена в глобальной области видимости и доступна внутри функции greet().
Блочная область видимости
Блочная область видимости — это область видимости, в которой переменные могут быть использованы только внутри блока кода, в котором они были объявлены. Блочную область видимости содержат if, else, while, for или просто { }
Например:
В этом примере переменная name объявлена в функции greet() и доступна только внутри блока if. Переменная message также объявлена в блоке if, и поэтому не может быть использована вне этого блока.
Однако переменная, объявленная через var сможет быть доступна вне блочной области.
Функциональная область видимости
Функциональная область видимости — это область видимости, в которой переменные могут быть использованы только внутри функции, в которой они были объявлены.
Например:
В этом примере переменная message объявлена в функции greet() и доступна внутри функции sayHello(). Переменная name объявлена внутри функции sayHello() и не может быть использована вне этой функции.
Заключение
Область видимости — это важный аспект при написании кода на JavaScript. Понимание глобальной, блочной и функциональной областей видимости поможет вам создавать более эффективный и понятный код.
Не забывайте ставить лайки и подписываться.
Жаль, в 90% таких статей, не пишут про теневую область видимости =(
function func(exmp = 1, func2 = () => { console.log(exmp) }) {
var exmp = 2;
func2();
};
что выведется в консоль )
Полагаю, параметры функций считаются отдельными областями видимости, поэтому вывод не реагирует на переопределение (var) exmp, а ищет переменную сначала в той области, где она находится. Однако если не переопределять, а присвоить новое значение, то выведет 2. Спасибо за новую интересную информацию :)
А я точно на виси? 🤔
Вроде как, а что такое?