console и его методыНедавно у меня возникла необходимость красиво вывести результат выполнения одного скрипта в консоль, в идеале в виде таблички. И тут я вспомнила, что у объекта
console в JavaScript существуют не только методы log и error, которые чаще всего используются, но ещё и ряд других, и поэтому я решила немного в них покопаться. 📌 Первые, и самые простые, это
log, info, warn, error и debug. Первый просто выводит сообщения любого вида в консоль, а остальные в целом делают то же самое, но задают сообщению так называемый log level. Например, warn покрасит сообщение в жёлтый, а error в красный, но итоговое оформление будет зависеть от среды выполнения. А метод debug выведет сообщение только в том случае, если в консоли включен режим дебага. 📌 Следующий метод как раз помог мне решить мою первоначальную задачу. Метод
table принимает либо двумерный массив, задающий строки таблицы, либо массив объектов с одинаковыми ключами, и на основе этих данных выводит данные в виде таблицы. Её вид также может отличаться в зависимости от среды выполнения.📌 Совсем неожиданными для меня стали методы
group и groupEnd , которые позволяют группировать выводимые в консоль сообщения, при этом групп может быть несколько и они могут быть вложенными. Например (выравнивание сделано для лучшей читаемости):
console.group("Группа");
console.log("Внутри группы");
console.group("Подгруппа");
console.log("Внутри подгруппы");
console.groupEnd();
console.groupEnd();
📌 Ещё интересные методы - это
assert и count , которые могут быть полезны при дебаге. Первый позволяет проверить истинность выражения, а второй может посчитать количество вызовов сообщений с определённой меткой. Метод count может также быть полезен, если нужно посчитать количество ререндеров конкретного компонента. Примеры:
console.assert(1 === 2, "Неправильно!"); // Выведет "Неправильно!", если утверждение ложное
console.count("Метка"); // Выведет "Метка: 1"
console.count("Метка"); // Выведет "Метка: 2"
📌 Ну и последнее, но не менее важное, что хотелось бы рассмотреть - это методы
time и timeEnd, которые берут на себя измерение времени между двумя точками в выполнении кода. Например:
console.time("Таймер"); // Задаём таймеру метку
for(let i = 0; i < 1000000; i++) {} // Некий код, который занимает время
console.timeEnd("Таймер"); // Выведет время, затраченное на выполнение цикла
🔗 И это были не все методы, которые есть в объекте
console. Подробнее об этих и других методах можно почитать на MDN, а поэкспериментировать с ними можно прямо сейчас в консоли вашего бразуера!