Первая программа на JavaScript
Чему вы научитесь:
- запускать программу на JavaScript в Node.js и печатать значения через
console.log; - отличать синтаксическую ошибку от ошибки выполнения по сообщению Node.js;
- объявлять функцию с параметрами и возвращать из неё значение через
return; - предсказывать, что напечатает вызов функции внутри другого вызова.

Программа похожа на рецепт. В рецепте шаги записаны по порядку, и повар выполняет их один за другим, сверху вниз. Компьютер выполняет программу так же: шаг за шагом.
Но повар может догадаться, что имел в виду автор рецепта, а компьютер — нет. Он делает ровно то, что написано.
Программа на JavaScript — это текстовый файл с командами, которые выполняются по очереди. Вот программа из одной строки, которая печатает приветствие:
console.log("Hello, world"); // Hello, worldДавайте разберём эту строку по частям:
- Запись
console.log(...)печатает то, что стоит в скобках. - В скобках стоит текст в двойных кавычках. Он печатается как есть, без кавычек.
- Точка с запятой в конце завершает команду.
Где работает JavaScript
JavaScript появился как язык для веб-страниц, и его умеет выполнять каждый браузер. Node.js — программа, которая выполняет JavaScript вне браузера, прямо на компьютере. В нашей картинке Node.js — повар, который читает рецепт и готовит по нему.
Браузер и Node.js — две среды выполнения: язык в них один, а набор встроенных возможностей разный. Например, в браузере есть страница, которую видит пользователь, а в Node.js её нет.
Задачи курса проверяются в браузере, а примеры из уроков удобно запускать в Node.js. Ссылки на установщик Node.js собраны в блоке «Подготовка компьютера» на странице курса.
Запуск файла
Чтобы запустить программу, сделайте три шага:
- Сохраните программу в файл с расширением
.js, напримерhello.js. - Откройте в папке с файлом окно для текстовых команд — терминал.
- Наберите
node hello.js.
Node.js прочитает файл, выполнит его и напечатает Hello, world в том же окне.
Инструкции
Строка console.log("Hello, world"); — это инструкция: одна команда, которая заканчивается точкой с запятой. Инструкции пишут по одной на строке, и выполняются они сверху вниз, как шаги рецепта.
На собеседовании любят спросить, обязательна ли точка с запятой. Нет: JavaScript часто сам подставляет её в конце строки, если её забыли. Правила этой подстановки запутанные, поэтому в курсе точка с запятой стоит после каждой инструкции.
Что печатает console.log
Если в скобках console.log стоят несколько значений через запятую, они печатаются через пробел. Давайте посмотрим на три строки:
console.log("one", "two"); // one two
console.log(2 + 3); // 5
console.log("2 + 3"); // 2 + 3- Первая строка печатает два слова через пробел и без кавычек.
- Во второй строке
2 + 3стоит без кавычек. Это вычисление, и печатается его результат. - В третьей строке те же символы взяты в кавычки. Это текст, и он печатается без изменений.
Кавычки решают, что видит JavaScript: текст, который нужно напечатать как есть, или код, который нужно выполнить.
Комментарии
Текст от // до конца строки — комментарий, и Node.js его пропускает. В примерах курса комментарий в конце строки показывает, что эта строка печатает. Знак ✗ в комментарии отмечает строку с ошибкой.
Частая ошибка
Текст забыли взять в кавычки:
console.log(Hello); // ✗ReferenceError: Hello is not definedБез кавычек JavaScript считает Hello именем. Имя — слово без кавычек, которое что-то обозначает: одни имена, как console, JavaScript знает заранее, другие программа должна сначала создать сама. Программа нигде не задаёт, что значит имя Hello, поэтому она останавливается с ошибкой.
Здесь картинка с рецептом перестаёт работать. Повар догадался бы, что автор забыл кавычки, а JavaScript текст программы за автора не исправляет.
Такой текст ошибки печатают Node.js, Chrome и Firefox, а Safari формулирует его иначе. Исправление — взять текст в кавычки: console.log("Hello");.
Главное
- Программа на JavaScript — текстовый файл с инструкциями, которые выполняются сверху вниз.
- Браузер и Node.js — две среды выполнения; файл запускают командой
node hello.js. console.logпечатает значения из скобок через пробел, а текст в кавычках — как есть.- Слово без кавычек JavaScript читает как имя, и незнакомое имя останавливает программу с ошибкой.