# Структура кода
В этой главе мы рассмотрим общую структуру кода, команды и их разделение.
[cut]
## Команды
Например, можно вместо одного вызова `alert` сделать два:
```js
//+ run
alert('Привет'); alert('Мир');
```
Как правило, новая команда занимает отдельную строку -- так код лучше читается:
```js
//+ run
alert('Привет');
alert('Мир');
```
Точку с запятой *во многих случаях* можно не ставить, если есть переход на новую строку.
Так тоже будет работать:
```js
//+ run
alert('Привет')
alert('Мир')
```
В этом случае JavaScript интерпретирует переход на новую строчку как разделитель команд и автоматически вставляет "виртуальную" точку с запятой между ними.
**Однако, важно то, что "во многих случаях" не означает "всегда"!**
Например, запустите этот код:
```js
//+ run
alert(3 +
1
+ 2);
```
Выведет 6.
То есть, точка с запятой не ставится. Почему? Интуитивно понятно, что здесь дело в "незавершённом выражении", конца которого JavaScript ждёт с первой строки и поэтому не ставит точку с запятой. И здесь это, пожалуй, хорошо и приятно.
**Но в некоторых важных ситуациях JavaScript "забывает" вставить точку с запятой там, где она нужна.**
Таких ситуаций не так много, но они всё же есть, и ошибки, которые при этом появляются, достаточно сложно обнаруживать и исправлять.
**Поэтому рекомендуется точки с запятой ставить. Сейчас это, фактически, стандарт, которому следуют все большие проекты.**
## Комментарии
Со временем программа становится большой и сложной. Появляется необходимость добавить *комментарии*, которые объясняют, что происходит и почему.
Комментарии могут находиться в любом месте программы и никак не влияют на ее выполнение. Интерпретатор JavaScript попросту игнорирует их.
*Однострочные комментарии* начинаются с двойного слэша `//`. Текст считается комментарием до конца строки:
```js
//+ run
// Команда ниже говорит "Привет"
alert('Привет');
alert('Мир'); // Второе сообщение выводим отдельно
```
*Многострочные комментарии* начинаются слешем-звездочкой "/*"
и заканчиваются звездочкой-слэшем "*/"
, вот так:
```js
//+ run
/* Пример с двумя сообщениями.
Это - многострочный комментарий.
*/
alert('Привет');
alert('Мир');
```
Все содержимое комментария игнорируется. Если поместить код внутрь /* ... */
или после `//` -- он не выполнится.
```js
//+ run
/* Закомментировали код
alert('Привет');
*/
alert('Мир');
```
[smart header="Используйте горячие клавиши!"]
В большинстве редакторов комментарий можно поставить горячей клавишей, обычно это Ctrl
+ /
для однострочных и что-то вроде Ctrl
+ Shift
+ /
-- для многострочных комментариев (нужно выделить блок и нажать сочетание клавиш). Детали смотрите в руководстве по редактору.
[/smart]
[warn header="Вложенные комментарии не поддерживаются!"]
В этом коде будет ошибка:
```js
//+ run
/*
/* вложенный комментарий ?!? */
*/
alert('Мир');
```
[/warn]
Не бойтесь комментариев. Чем больше кода в проекте -- тем они важнее. Что же касается увеличения размера кода -- это не страшно, т.к. существуют инструменты сжатия JavaScript, которые при публикации кода легко их удалят.
На следующих занятиях мы поговорим о переменных, блоках и других структурных элементах программы на JavaScript.