Оператор with из JavaScript о котором вы не слышали
В JavaScript есть синтаксис, о существовании которого многие разработчики даже не знают. Один из таких примеров это оператор with.
const user = { name: 'John', age: 25, };
with (user) { console.log(name); console.log(age); }
Давайте разберёмся, что делает with.
Он добавляет объект в scope chain. То есть внутри блока JavaScript сначала пытается найти переменную в объекте, переданном в with, и только потом идёт выше по областям видимости.
Звучит удобно. Но проблема в том, что код становится менее предсказуемым.
const name = 'global';
const user = { name: 'local', };
with (user) { console.log(name); }
Какой name выведется? Пишите в коментарии
Еще один интересный момент: в strict mode оператор использовать нельзя
Ну и небольшой вывод: можно сказать, что сегодня with почти не используется, но он остаётся интересным артефактом старого JS и отличным напоминанием о том, почему предсказуемость языка важнее магического синтаксиса.
· 22.05
Там полно deprecated-легаси, зачем его изучать? Например, все элементы с id создают глобальные переменные с именем как в id. А ещё ьам был какой-то метод то ли чтобы красить элемент, то ли шрифт менять, что-то такое.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 22.05
Максим, это ты говоришь про браузерное окружение, которое в стандарт не входит, а я про базовый js
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 23.05
Да не суть важно. JS чаще используют в браузере, чем где-то ещё
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 26.05
Согласен. Смысла нет изучать это деприкейтное старье.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 27.05
Ну ошибка выдившего же... а у меня чаще JS на серверах работает :)
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 28.05
Я про мир в целом
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён