Как вывести в консоль javascript
Перейти к содержимому

Как вывести в консоль javascript

  • автор:

как работает вывод в консоль (nodejs)

Всем привет. Сейчас задам весьма тривиальный вопрос: как работает вывод в консоль? Я вот использую nodejs как пример. Простой участок кода: console.log(1); console.log(2); console.error(3); console.log(4); А теперь внимание: Если запускать через терминал (в линуксе) node test.js выведет все по порядку: 1 2 3 4 Но если запускать в какой-ниб среде, которая умеет отличить ошибку от инфо. таких как шторм или ci. вывод ошибок в шторме То будет все что угодно, 3 1 2 4, 1 3 2 4 или 1 2 4 3. По настроению цифра 3 будет в любом месте лога. А изначально, почему у меня этот вопрос возник, это ci: вывод ошибок в ci Ошибки смешиваются с логами. Как это работает? Ответ напрашивается такой: мол есть очередь сообщений, а ошибки лезут в не очереди. При условии что терминал может отличить ошибку от сообщения. А теперь я хочу пруфы. Почему так сделали? На самом деле все так обстоит? что оптимизировали? Почему не по порядку. Или все таки nodejs виноват?

Отслеживать
задан 3 сен 2016 в 11:54
Андрей Сорока Андрей Сорока
235 2 2 серебряных знака 9 9 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Эти два способа вывода пишут в разные потоки вывода.

console.log пишет в stdout (файловый дескриптор 1).
console.error пишет в stderr (файловый дескриптор 2).

Если какой-то обработчик этих двух потоков задумает их выводить комбинированно (в ваших случаях именно так), то результат будет зависеть от способа комбинации. Это уже в зоне ответственности не Node.js, а процесса, который его запускает. Шелла, CI-раннера или чего-то ещё.

Можно точно рассчитывать, что порядок в пределах каждого отдельно взятого потока порядок выводимых строк сохранится. Для логов потоки и вовсе обычно выводят в отдельные файлы.

Выводим элемент в консоль

Мы сказали JavaScript найти на странице элемент с классом page , но как узнать, что он его действительно нашёл? И что элемент — тот самый? Для этого нам понадобится консоль.

Консоль — это инструмент разработчика, который помогает тестировать код. Если во время выполнения скрипта возникнет ошибка, в консоли появится сообщение о ней. А ещё в консоль можно выводить текстовые подсказки. В нашем интерфейсе консоль находится справа от редактора кода, между мини-браузером и списком задач. Чтобы увидеть сообщения в консоли, её нужно развернуть, щёлкнув по значку справа.

Задачи Выполнено 0 из 3

Чтобы вывести сообщение в консоль, нужно использовать console.log :

console.log('Привет от JavaScript!');

В результате этой инструкции в консоли появится сообщение Привет от JavaScript!

В консоль можно выводить не только текст, но и результаты выполнения инструкций. Например, найденный с помощью querySelector элемент:

console.log(document.querySelector('.page'));

Инструкция получилась длинной и сложной, но вскоре мы разберём, как её упростить. А пока займёмся тестированием кода. Так называется этап создания программы, когда мы проверяем, что всё работает, как надо. И это не менее важно, чем написание кода.

Давайте убедимся, что JavaScript нашёл нужный элемент, а заодно потренируемся работать с консолью.

Перейти к заданию

  • index.html Сплит-режим
  • style.css Сплит-режим
  • script.js Сплит-режим

FlashNews!

На главную

email

Новая библиотека для создания графиков

Теперь вы можете создать дашборд за считанные секунды.

Что там у роботов?

В робототехнике происходит много интересного, эта новость могла бы быть об этом, но нет.

Консоль JavaScript в вашем браузере

В процессе программирования на JavaScript появляется необходимость выводить значения переменных. К примеру, это можно делать функцией alert( ). Но если использовать её несколько раз, тогда придётся закрывать всплывающее окно, чтобы увидеть следующее. Это неудобно, поэтому на помощь приходит консоль, встроенная в браузер.

Как открыть JavaScript консоль в браузере?

Если вы пользуетесь одним из популярных браузеров (Chrome, FireFox, Safari, Opera), то в них уже встроена консоль JavaScript, в которую можно выводить отладочную информацию во время разработки. Для этого откройте страницу сайта, на которой находится JS код для тотладки, и кликните на клавишу F12 на клавиатуре. Откроется панель разработчика.

В большинстве браузеров средства разработки называются более-менее одинаково и имеют очень схожий функционал. Далее в статье будет рассматриваться браузер FireFox.

Теперь необходимо переключить вкладку вверху открывшегося окна на «Консоль». Кликните на эту вкладку с помощью курсора мыши: Разберёмся с иконоками и опциями, которые есть в этой закладке:

Как вывести переменную JavaScript в консоль?

Попробуем написать на странице JavaScript код и перезагрузить её, чтобы он выполнился. В коде используем функцию console.log( ), которая выводит значение содержимого в скобках. То есть если поставить в скобки переменную, то в консоли будет показано её значение:

var a = ; console.log(a);

Заглянем в консоль и увидим значение объекта: Чтобы увидеть подробную информацию, кликните на иконку стрелочки слева на интересующей строчке: Таким способом можно выводить не только массивы и объекты, но и простые переменные. К сожалению, если выводить сразу несколько значений, то не будет понятно что к чему относится. Продемонстрируем это:

var a = 'Мышь'; var b = 'Сыр'; var c = 100; console.log(a); console.log(b); console.log(c);

Результат выполнения этого кода будет таким: Такой вывод не слишком информативен. К счастью, внутри скобок функции console.log( ) можно использовать объединение строк. Поэтому предлагаем записать дополнительную отладочную информацию в выводимые строки:

var a = 'Мышь'; var b = 'Сыр'; var c = 100; console.log('Значение переменной "a" = ' + a); console.log('Значение переменной "b" = ' + b); console.log('Значение переменной "c" = ' + c);

Теперь вывод в консоль будет более информативным. И можно использовать функцию console.log( ) десятки раз, не боясь запутаться в значениях, которые попадают в консоль:

Рекомендуем ознакомиться со статьёй «Операции со строками в JavaScript», если возникли вопросы к объединению строк.

К сожалению, это можно делать только с простыми переменными (строки/числа) и массивами (в том числе многомерными), но с объектами так сделать не получится, потому что будет выведено «[object Object]» вместо значения:

Как вывести объект в консоль js

Чтобы вывести в консоль плоский объект (объект, в котором нет вложенных объектов или массивов), достаточно передать его в console.log() :

const plainObject =  name: 'John', age: 35, isMarried: true, >; console.log(plainObject); // => 

Для вложенных объектов с глубиной вложенности не более двух ситуация аналогичная: просто передаём такой объект в console.log() и всё будет работать как надо:

const nestedObject =  firstLevel:  secondLevel:  name: 'John', age: 35, isMarried: true, >, >, >; console.log(nestedObject); // => < firstLevel: < secondLevel: < name: 'John', age: 35, isMarried: true >> > 

Но для уровня вложенности три и более такой способ уже не подойдет, и мы увидим следующее:

const deepNestedObject =  firstLevel:  secondLevel:  thirdLevel:  name: 'John', age: 35, isMarried: true, >, >, >, >; console.log(deepNestedObject); // => < firstLevel: < secondLevel: < thirdLevel: [Object] >> > 

Здесь нам на помощь приходит метод JSON.stringify() , который преобразует объект в JSON строку. Работать этот способ будет с любым уровнем вложенности:

console.log(JSON.stringify(deepNestedObject, null, 2)); /* => < "firstLevel": < "secondLevel": < "thirdLevel": < "name": "John", "age": 35, "isMarried": true >> > > */ 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *