Часть 4. Вывод на экран в Javascript. Log, Forest, log! И что такое console.

Теперь, когда мы понимаем, как выглядит вызов функции, нам проще увидеть похожий паттерн (шаблон) в коде для Javascript:

console.log(...);

Здесь мы видим вызов функции log (а не print как в Питоне, или printf как в Си), в которую передаётся текст для отображения.

Но у вас могут возникнуть 3 вопроса:

  1. Что значит log?

  2. Что такое console?

  3. И почему перед функцией log написано console. (с точкой)?

Давайте разберёмся со всем по порядку.

Log, Forest, log!

Заглянем в англо-русский словарь и посмотрим значение слова log. Ну как всегда в английском — у одного слова куча значений: есть и существительные, и глаголы, и прилагательные.

Когда-то мы с вами говорили:

название переменной должно отражать суть того, что она хранит: именование (naming) — одна из сложнейших задач в программировании: какое имя придумать переменной так, чтобы сразу было понятно, для чего эта переменная нужна

То же самое относится и к функциям. Функция — это по сути команда, инструкция, проще говоря — действие. Поэтому в программировании принято функции всегда называть глаголом или начинать их имя с глагола, например:

print (напечатать);

getUserInfo (получить информацию о пользователе);

setCurrentDate (установить текущую дату);

isResponseValid (ответ корректный? — в английском “is” означает «есть, являться», и в вопросе глагол идет первым, поэтому дословно название функции звучит как «является ответ корректным?»).

Поэтому, возвращаясь к слову log мы можем отбросить «бревно», «колоду», «журнальный» и тому подобные слова, и остановиться на «регистрировать, протоколировать, записывать в журнал».

На программистском же жаргоне часто говорят «логировать».

Помните, когда мы говорили о том, почему всё начинается с примера «Привет, мир!», мы сказали, что очень важно в первую очередь научиться видеть, чем занимается программа в процессе своей работы. Для этого программа должна уметь выводить сообщения про свою текущую деятельность либо на экран, либо в специальный файл.

Если программа пишет в файл все свои события, то такой файл называется лог-файлом или журналом регистрации (событий).

Console

Когда-то компьютеры занимали целые комнаты, и у оператора было специальное устройство — консоль (пульт управления) с экраном и клавиатурой — через которое он «общался» с компьютером.

Современная консоль в браузере или IDE (среде разработки) — это её цифровой потомок, который:

  • даёт виртуальное окно для «общения» с программой;

  • является местом, где программа оставляет свои «заметки» (логи);

  • позволяет увидеть, что программа «думает» или как она работает.

И вот функция console.log выводит свои сообщения именно туда.

Чтобы найти консоль в вашем браузере:

  1. Нажмите F12 в браузере.

  2. Найдите вкладку Console и перейдите в неё.

  3. Вот она — наша console!

  4. Теперь вы можете после знака > набрать console.log("Hello, World!"); и тут же увидеть результат — строку "Hello, World!".

Console in Browser Console.log Hello world in browser

Но так как мы пока работаем в песочнице, то все сообщения в результате выполнения console.log будут появляться в окошке Output:

Console.log in sandbox

Про точку после console

И у нас остался последний вопрос: почему функция называется console.log, а не, например, logToConsole (логировать в консоль)? Или просто log?

По-настоящему полный ответ на этот вопрос затрагивает такую огромную тему, как ООПобъектно-ориентированное программирование. Но сейчас мы не будем погружаться так глубоко, а ограничимся более простым объяснением.

Представьте себе, что вы хотите выводить в консоль не только обычные сообщения, но и предупреждения, а еще ошибки. Тогда у вас появились бы функции: warnToConsole (предупредить в консоль) и errorToConsole (выдать ошибку в консоль).

Как видите у нас во всех трех функциях повторялся бы один и тот же паттерн: ToConsole, потому что все эти функции относились бы к консоли:

  • logToConsole

  • warnToConsole

  • errorToConsole

Создатели Javascript решили: почему бы тогда не ввести объект console, у которого будут свои функции log, warn и error. А вызывать их будут через точку: console.log итд.

Ну а подробнее об этом мы поговорим с вами, когда начнем разбираться с ООП.