Первое, что мы изучим, — это строительные блоки кода.
Операторы — это синтаксические конструкции и команды, выполняющие действия.
Мы уже видели оператор alert('Hello, world!')
, который показывает сообщение «Hello, world!».
В нашем коде мы можем иметь столько операторов, сколько захотим. Операторы можно разделять точкой с запятой.
Например, здесь мы разделили «Hello World» на два оповещения:
Предупреждение('Привет'); предупреждение('Мир');
Обычно операторы пишутся на отдельных строках, чтобы сделать код более читабельным:
Предупреждение('Привет'); предупреждение('Мир');
Точка с запятой может быть опущена в большинстве случаев, когда существует разрыв строки.
Это также будет работать:
предупреждение('Привет') предупреждение('Мир')
Здесь JavaScript интерпретирует разрыв строки как «неявную» точку с запятой. Это называется автоматической вставкой точки с запятой.
В большинстве случаев новая строка подразумевает точку с запятой. Но «в большинстве случаев» не значит «всегда»!
Бывают случаи, когда новая строка не означает точку с запятой. Например:
оповещение(3 + 1 + 2);
Код выводит 6
потому что JavaScript не вставляет здесь точки с запятой. Интуитивно очевидно, что если строка заканчивается плюсом "+"
, то это «неполное выражение», поэтому точка с запятой там будет некорректной. И в данном случае это работает так, как задумано.
Но бывают ситуации, когда JavaScript «не может» поставить точку с запятой там, где это действительно необходимо.
Ошибки, возникающие в таких случаях, довольно сложно обнаружить и исправить.
Пример ошибки
Если вам интересно увидеть конкретный пример такой ошибки, посмотрите этот код:
Оповещение("Привет"); [1, 2].forEach(предупреждение);
О значении скобок []
и forEach
думать пока не нужно. Мы изучим их позже. А пока просто запомните результат запуска кода: он показывает Hello
, затем 1
, затем 2
.
Теперь давайте удалим точку с запятой после alert
:
оповещение("Привет") [1, 2].forEach(предупреждение);
Отличие от приведенного выше кода составляет всего один символ: исчезла точка с запятой в конце первой строки.
Если мы запустим этот код, отобразится только первое сообщение Hello
(и появится ошибка, возможно, вам придется открыть консоль, чтобы ее увидеть). Никаких цифр больше нет.
Это потому, что JavaScript не предполагает точку с запятой перед квадратными скобками [...]
. Итак, код в последнем примере рассматривается как один оператор.
Вот как это видит движок:
alert("Привет")[1, 2].forEach(alert);
Выглядит странно, правда? Такое слияние в данном случае просто неправильно. Нам нужно поставить точку с запятой после alert
, чтобы код работал правильно.
Это может случиться и в других ситуациях.
Мы рекомендуем ставить точку с запятой между операторами, даже если они разделены символами новой строки. Это правило широко принято сообществом. Еще раз отметим – в большинстве случаев точки с запятой можно не указывать. Но безопаснее – особенно для новичка – использовать их.
С течением времени программы становятся все более и более сложными. Возникает необходимость добавлять комментарии , описывающие, что делает код и почему.
Комментарии можно помещать в любое место скрипта. Они не влияют на его выполнение, поскольку движок их просто игнорирует.
Однострочные комментарии начинаются с двух символов косой черты //
.
Остальная часть строки является комментарием. Он может занимать отдельную строку или следовать за оператором.
Как здесь:
// Этот комментарий занимает отдельную строку Предупреждение('Привет'); предупреждение('Мир'); // Этот комментарий следует за оператором
Многострочные комментарии начинаются с косой черты и звездочки /*
и заканчиваются звездочкой и косой чертой */
.
Так:
/* Пример с двумя сообщениями. Это многострочный комментарий. */ Предупреждение('Привет'); предупреждение('Мир');
Содержимое комментариев игнорируется, поэтому, если мы поместим код внутрь /* … */
, он не выполнится.
Иногда может быть удобно временно отключить часть кода:
/* Комментируем код Предупреждение('Привет'); */ предупреждение('Мир');
Используйте горячие клавиши!
В большинстве редакторов строку кода можно закомментировать, нажав горячую клавишу Ctrl + / для однострочного комментария и что-то вроде Ctrl + Shift + / – для многострочных комментариев (выделите фрагмент кода и нажмите горячую клавишу). На Mac попробуйте Cmd вместо Ctrl и Option вместо Shift .
Вложенные комментарии не поддерживаются!
Внутри другого /*...*/
не может быть /*...*/
.
Такой код умрёт с ошибкой:
/* /* вложенный комментарий ?!? */ */ Предупреждение('Мир');
Пожалуйста, не стесняйтесь комментировать свой код.
Комментарии увеличивают общий объем кода, но это вовсе не проблема. Существует множество инструментов, которые минимизируют код перед публикацией на производственном сервере. Они удаляют комментарии, поэтому они не появляются в рабочих скриптах. Поэтому комментарии совершенно не оказывают негативного влияния на производство.
Позже в руководстве будет глава «Качество кода», в которой также объясняется, как писать более качественные комментарии.