@nak-alexey

Почему не работает такая конструкция?

Уважаемые гуру front-end(-а) почему при такой записи компилятор ругается?
(переменная!=значение) ? return 'что то' : continue;

А при такой все норм!
if (переменная!=значение) return 'что то';
else continue;


Ошибка: Uncaught SyntaxError: Unexpected token return
  • Вопрос задан
  • 1574 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Тернарный оператор возвращает значение. Это не то же самое, что if .. else

условие ? выражение_1 : выражение_2 – эта конструкция принимает то или иное значение: выражение_1 или выражение_2.

Нельзя ставить в тернарный оператор continue или return потому, что это не выражения, принимающие какие-то значения, а управляющие структуры.

Если бы вы выбирали, что вернуть, можно было бы написать return isItTrue ? A : B;

В вашем же случае выбора между return и continue годится только старый добрый if .. else
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Coder321
Тернарный оператор сам по себе делает return, так что повторной вызов return генерит ошибку
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы