Можно ли создать лексическую область только между фигурными скобками?

Есть ли случай, когда фигурные скобки не требуются для того, чтобы сделать новую область видимости, в которой можно объявить локальную переменную? Независимо от того, что я думаю, у него есть фигурные скобки: например. блоки, условия, циклы, try/catch и т. д. И, например, стрелочные функции без тел блоков, похоже, не создают новых областей.

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

Bergi 19.06.2019 19:19

@Bergi, что вы подразумеваете под «их параметрами»? Итак, параметры можно рассматривать как объявления переменных, верно?

Nurbol Alpysbayev 19.06.2019 19:53

да. Объявление параметра (или в случае деструктуризации я бы даже не назвал целевой идентификатор «параметром») действительно создает локальную переменную в области действия функции.

Bergi 19.06.2019 21:56
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
3
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Цикл for с let создает область видимости:

let x = "hello world";
for (let x = 0; x < 10; x++) console.info(x); // numbers ...
console.info(x); // "hello world"

В этом коде нет { }.

Стрелочные функции делать создают новую область, но не создают новую привязку this.

let x = "hello world";
let y = () => { let x = "new scope"; console.info(x); };
y(); // "new scope"
console.info(x): // "hello world"

Хм, действительно! Забыл об этом. Спасибо! :-) Так и для..оф, и для..ин тоже... Может что-то еще?

Nurbol Alpysbayev 19.06.2019 18:46

Верно, любая из форм for, которые позволяют объявление с let или const, сделает это.

Pointy 19.06.2019 18:47

Я имел в виду arrow functions without block bodies, исправил. Извиняюсь

Nurbol Alpysbayev 19.06.2019 18:47

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

Pointy 19.06.2019 18:48

Другие вопросы по теме