Вопрос №41 от пользователя Daniel Newman в уроке «Регулярные выражения в JavaScript», курс «Введение в Javascript»

Daniel Newman

Очень красивая конструкция вида:

while ( (arr = reg.exec(input)) != null ) {}

Т.е. тут рассказывается, что само присвоение значения переменой как бы возвращает ее состояние, которое немедленно может стать аргументом операции булево сравнения?

Ну, это тоже хочется понять: хорошо так делать или нет?

1 0

Kirill Mokevnin

Достаточно опасная конструкция, если забыть скобки на присвоение, то легко можно наткнуться на не тот приоритет.

В некоторых языках даже запрещено присвоение в подобного рода конструкциях, например в python. А в функциональных так вообще нельзя).

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

1

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы соглашаетесь c «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
1 декабря 8 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
1 декабря 8 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
1 декабря 8 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
1 декабря 8 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
1 декабря 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Новый
Создает веб-приложения со скоростью света
1 декабря 5 месяцев