Page 87 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 87
Отступ
По большей части дополнительный отступ (включая символ перевода строки2):
не влияет на работу интерпретатора JavaScript: один пробел так же хорош, как и 1 0 ,
а 1 О пробелов - как и 1 О новых строк. Это не означает, что вы можете использовать
i
отступ как попало. Например, приведенный выше оператор wh l e эквивалентен
while ( funds > 1 & & funds < 1 0 0 )
funds = funds + 2 ;
Однако так взаимоотношения этих двух операторов не вполне очевидны! Такое
форматирование вводит в заблуждение, и его следует избегать. Однако следующие
эквиваленты весьма распространены, а кроме того, они более однозначны.
/ / без новой строки
while ( funds > 1 & & funds < 1 0 0 ) funds = funds + 2 ;
/ / без новой строки, блок с одним оператором
while ( funds > 1 & & funds < 1 0 0 ) { funds = funds + 2 ; }
Некоторые люди настаивают, чтобы тела оператора управления потоком (для еди
нообразия и ясности) всегда были блоком операторов (даже если они содержат толь
ко один оператор). Хотя я и не принадлежу к этому лагерю, я должен указать, что
небрежные отступы иногда сильно вводят в заблуждение.
while ( funds > 1 & & funds < 1 0 0 )
funds funds + 2 ;
funds = funds - 1 ;
На первый взгляд, в теле цикла while выполняется два оператора (два шага впе
ред и один назад), но поскольку никакого блока операторов здесь нет, JavaScript ин
терпретирует это так.
while ( funds > 1 && funds < 1 0 0 )
funds = funds + 2 ; // тело цикла while
funds = funds - 1 ; / / после цикла while
Я сторонник тех, кто говорит, что отсутствие блоков для тел с одиночным опе
ратором вполне допустимо, но, конечно, вы всегда должны нести ответственность
за отступ, чтобы ясно выражать свое намерение. Кроме того, работая в группе или
над проектом реализации с открытым исходным кодом, вы должны придерживаться
всех принятых группой стилистических правил независимо от ваших личных пред
почтений.
2 Новые строки после оператора return приводят к проблемам; дополнительная информация при
ведена в главе 6.
86 Глава 4. Управление потоком

