2015-11-18 1 views
-2

У меня есть некоторый код, который выглядит следующим образом:JS если еще против, если и по-прежнему в пределах цикла

for(...){ 
    if(something){ 
     ...; 
     continue; 
    } 
    for(...){ 
     ...; 
    } 
} 

Теперь мне было интересно, если это будет лучшим решением для замены continue с else блоком, который содержит второй цикл.

Спасибо за Ваше мнение

+6

Определите, что для вас означает «лучше». JS-интерпретатору все равно, и он будет работать аналогичным образом. – zerkms

+4

Полностью основанный на мнениях. Некоторым людям не нравятся 'continue',' break' и т. Д. Мне не нравятся глубокие гнезда и длинные области. – Thilo

ответ

1

Включение блока else сделает код функционально эквивалентным, да. Что касается того, лучше ли это? Как говорили другие, переводчику JS это не понравится - он будет обрабатывать его одинаково независимо. Единственное, что важно тогда, - это читаемость человека.

Если внутренняя петля длинная и сложная и содержит много других вещей, то использование продолжения вполне может быть лучшим вариантом, так как он ясно заявляет читателю, что не имеет значения, что еще находится в цикл, он перейдет к следующей итерации. использование if/else означает, что пользователь должен подтвердить, что нет кода ниже, который будет выполняться после if/else.

В другой ситуации, используя , если/else может быть лучше, потому что использование continue может закончиться дублированием кода, или позже обслуживание может добавить пару строк в конец цикла, считая, что каждая итерация пройдет через он (всегда делайте ваш код как можно более идиотским, если кто-то еще может его модифицировать позже!).

В конечном счете это сводится к стандартам мнения и кодирования (если это часть более крупного проекта, то она должна соответствовать тому, что в любом другом месте максимально). Сделайте то, что делает код наиболее понятным для вас. Попросите кого-нибудь еще взглянуть на конечный продукт, если сможете, посмотрите, есть ли у вас другое мнение - всегда проще читать свой собственный код, если кто-то еще смотрит на него, может выделить вещи, которые не так понятны как вы думаете!

0

Как zerkms замеченных, Я.С. интерпретатор будет работать этот код аналогичным образом.

На мой взгляд, код с инструкцией if..else станет более читаемым, а также может быть использован оператор continue, когда на этом шаге цикла нечего делать.

Смежные вопросы