Консольный ввод-вывод информации с примерами на C# и Windows Terminal
Консоль (Console)- характерная особенность ранних операционных систем (например, MS DOS), использующих интерфейс командной строки для интерактивного обмена информацией с пользователем. Консольные приложения используются и сейчас. По сравнению с графическим интерфейсом, интерфейс командной строки требует меньше системных ресурсов и предоставляет инструменты автоматизации для повторяющихся задач.
Наиболее яркими примерами интерфейсов командной строки (англ. Command line interface, CLI) являются: Командная оболочка Windows, PowerShell, а также Bash, доступная на всех платформах (наибольшее распространение Bash получил в Unix-системах и Mac, присутствует также в компонентах Подсистема Windows для Linux (англ. Windows Subsystem for Linux, WSL)).
В операционной системе Windows консоль называется окном командной строки, для вызова которой Вы можете пройти в меню Пуск — Командная строка. В 2019 году компания Micrsoft также представила Windows Terminal — современное консольное приложение для пользователей инструментов и оболочек командной строки, таких как Command Prompt, PowerShell и WSL.
Форма интерфейсов командной строки используется в основном для обработки сценариев команд с использованием последовательности операций чтения (для принятия данных путем ввода текстовой информации пользователем) и операций записи (в вывод консоли, для отображения результатов обратной связи).
На платформе Microsoft .Net Core такие операции в виде методов описаны в классе System.Console, предоставляющем базовую поддержку для приложений, считывающих и записывающих символы в консоль стандартных входных и выходных потоков.
Программный способ записи в вывод консоли
Для вывода информации на консоль применяются 2 ключевых метода класса Console — Console.WriteLine и Console.Write, отличие которых заключается в том, что WriteLine самостоятельно добавляет терминатор строки (разделитель строки) ко всему, что вы записали. Использование метода Write предполагает ручное разбиение строки на несколько путем добавления в запись вывода терминатора строки, где это необходимо.
Записывает указанные данные с текущим признаком конца строки в стандартный выходной поток.
Console.WriteLine(“Hello, World!”);
Console.WriteLine(“=Second Line=”);
Результатом вывода будет две строки.
Записывает текстовое представление заданного значения или значений в стандартный выходной поток без признака конца строки.
Console.Write(“Hello,”);
Console.Write(“ “);
Console.Write(“World!”);
Console.Write(Environment.NewLine);
Console.Write(“=Second Line=”);
Результат вывода этого примера идентичен.
Во втором примере для разделения строки используется в качестве терминатора свойство Environment.NewLine — это обеспечивает эффективный способ выбора комбинации символов конца строки, которая зависит от используемой вами платформы. Так, большинство Unix-систем применяет специальную комбинацию “\n” в качестве терминатора строки, тогда как Windows-системы “\r\n”.
Формирование строк
При выводе информации вы можете использовать операторы + или += , интерполяцию строк и иные методы для объединения и формирования строковых переменных.
Программный способ ввода информации с консоли
Как и запись в вывод, класс Console предоставляет различные методы для чтения ввода от пользователя.
Метод Console.ReadLine
Считывает набор символов до тех пор, пока не найдет признак окончания или новой строки, и возвращает все, что он считает, как строковое значение.
Console.WriteLine(“What is your name?”);
string response = Console.ReadLine();
Console.WriteLine(“Hello, “ + response+“!“);
Метод Console.Read
Считывает следующий символ в строке и возвращает его как код целочисленного символа.
Console.WriteLine(“Please, type anything: “);
int value = Console.Read();
Console.Write(“You typed: “ + (char)value);
В отличие от ReadLine , метод Read возвращает по одному символу за раз, пока не достигнет конца ввода. Read фактически не возвращает строку, он возвращает целое число, представление ASCII введенного символа. В примере используется функция char() для преобразования полученного целого числа, чтобы получить действительно введенный символ.
Метод Console.ReadKey
Считывает следующий символ в строке и возвращает его как экземпляр ConsoleKeyInfo.
ConsoleKeyInfo описывает нажатую клавишу, включая символ, представленный этой клавишей, и состояние управляющих клавиш-модификаторов (например, Shift, Alt и др.). Нижеследующий пример ожидает нажатия клавиши Enter.
Использование JavaScript-консоли в браузерах
Сегодня мы публикуем заметку, посвящённую особенностям использования JavaScript-консоли в браузерах, лежащим за пределами широко известной команды console.log() . Собственно говоря, эта команда представляет собой простейший инструмент для отладки программ, который позволяет выводить что-либо в консоль. Однако знание некоторых особенностей этого инструмента позволит тем, кто им пользуется, повысить эффективность работы.
Команда console.log() и имена переменных
Простейший вариант использования console.log() заключается, например, в выводе некоей строки или объекта. Например, выведем в консоль строку:
Теперь представим себе, что в консоль нужно вывести несколько объектов. Например — таких:
Пожалуй, логичнее всего будет воспользоваться для решения этой задачи несколькими командами вида console.log(variable) . Хотя данные в консоль и попадают, при их выводе понятной становится одна проблема.
Взглянем на то, что выводится в консоль.
В консоли нет имён переменных
Как можно видеть, имён переменных, foo и bar , здесь нет. Объекты, пользуясь значком в виде стрелки в левых частях строк, можно разворачивать, но даже так, глядя на внутреннюю структуру объектов, понять, какой именно объект выведен в консоль, может быть весьма непросто. В решении этой проблемы нам помогут вычисляемые имена свойств объектов. А именно, эта особенность объектных литералов, появившаяся в ES6, позволяет пользоваться удобной конструкцией следующего вида:
При таком подходе в консоль попадёт объект, имена свойств которого будут представлять собой имена переменных-объектов, которые нужно вывести. Кроме того, это позволяет избавиться от некоторых вызовов console.log() , используемых ранее для вывода объектов по отдельности.
Команда console.table()
Улучшать внешний вид того, что программа выводит в консоль, можно и дальше, оформив содержимое объектов в виде таблицы. Это хорошо скажется на читаемости информации. А именно, речь идёт о том, что если вы выводите в консоль объекты с одинаковыми именами свойств, или массивы похожих объектов, вы можете воспользоваться командой console.table() . Вот как выглядит результат выполнения команды вида console.table(< foo, bar >) .
Команда console.table() в действии
Команда console.group()
Эту команду можно использовать в том случае, если нужно сгруппировать некие связанные данные и создать структуры из вложенных групп, которые повышают удобство работы с такими данными.
Кроме того, этот подход можно использовать в тех случаях, когда в некоей функции выполняется несколько команд вывода чего-либо в консоль, и нужно, чтобы можно было бы чётко, с одного взгляда, отделить результаты выполнения таких команд от других.
Предположим, мы выводим в консоль сведения о неких пользователях:
Вот как выглядят результаты работы этого кода.
Группировка результатов работы команд вывода данных в консоль
При использовании команды console.group() группы, по умолчанию, выводятся в развёрнутом виде. Для того, чтобы они выводились свёрнутыми, вместо этой команды можно воспользоваться командой console.groupCollapsed() . Для того, чтобы просмотреть содержимое такой группы, её понадобится развернуть с помощью значка, находящегося слева от имени группы.
Команды console.warn() и console.error()
В зависимости от ситуации, для того чтобы подчеркнуть важность некоторых сообщений, выводимых в консоль, вам могут пригодиться команды console.warn() и console.error() . Они используются, соответственно, для вывода предупреждений и ошибок.
Предупреждения и ошибки
Возможно, вам пригодится и команда console.info() , которая предназначена для вывода информационных сообщений.
В настройке внешнего вида сообщений, выводимых в консоль, можно пойти и ещё дальше, самостоятельно их стилизовав. Для стилизации текстов, выводимых в консоль, можно воспользоваться директивой %c . Это может оказаться полезным, например, для организации визуального разделения сведений, поступающих от подсистем выполнения обращений к неким API, от подсистем, ответственных за обработку событий, генерируемых пользователем, и так далее. Главное тут — выработать некие правила стилизации и их придерживаться. Вот пример настройки внешнего вида данных, выводимых в консоль:
Тут же можно настраивать и другие CSS-свойства текста, наподобие font-size и font-style .
Стилизация данных, выводимых в консоль
Команда console.trace()
Команда console.trace() выводит в консоль результаты трассировки стека и позволяет судить о том, что произошло в определённом месте программы во время её выполнения. Например, существуют некоторые методы, которые, в определённых ситуациях, нужно вызывать лишь один раз, скажем — методы для удаления информации из базы данных. Проверить, действительно ли выполняется лишь однократный вызов подобного метода, можно с помощью console.trace() . Эта команда позволяет вывести в консоль сведения, которые помогают проконтролировать правильность работы внутренних механизмов программ.
Команда console.time()
Одна из важных задач, встающая перед фронтенд-разработчиком, заключается в том, чтобы обеспечить высокую скорость работы кода. Команда console.time() позволяет замерять время выполнения операций и выводить то, что удалось выяснить, в консоль. Например, исследуем с помощью этой команды пару циклов:
Взглянем на то, что попало в консоль после выполнения этого кода.
Результаты использования console.time()
Итоги
В этом материале мы рассмотрели некоторые полезные мелочи, касающиеся вывода данных в консоли браузеров. Если раньше вы об этих возможностях не знали — надеемся, теперь у вас появились новые полезные JavaScript-инструменты.
Уважаемые читатели! Если вы занимаетесь разработкой больших JavaScript-проектов — просим вас рассказать о том, какими средствами вы решаете в них проблемы логирования.
Консоль JavaScript: определение, как вывести, команды и итог
При помощи J S ( JavaScript) можно осуществить вывод в консоль браузера какой-либо информации прямо из программного кода. JavaScript-программисты знакомы с командой, которая отвечает за это действие , — это «console.log()».
По сути, команда «console.log()» в JavaScript помогает отладить JS-код в программ е б лагодаря выводу сообщений. Поэтому понимать , как она работает , необходимо каждому веб-программисту.
Как осуществить JS-вывод в консоль браузера
Шаблон использования команды «console.log()» в JavaScript простой, но может выводить сложные вещи. Шаблон:
console.log(<информация для вывода>);
Например, можно вывести какой-либо текст:
console.log(‘JavaScript-вывод в консоль’);
Но можно вывести и что-то сложное, например, вот такие функции со сложной конструкцией:
const object1 = < id: first, verified: true, objectcolor: 'white'>;
const object2 = < id: second, verified: false, objectcolor: 'black'>;
Можно вывести всю эту конструкцию в консоль, за исключением того, что находится до знака « = » , чтобы в консоли браузера появилось следующее:
< id: first, verified: true, objectcolor: 'white'>;
< id: second, verified: false, objectcolor: 'black'>;
Делается это простым выражением:
console.log(
Табличный вывод в консоль при помощи JavaScript
Чуть выше в примера х « object1 » и « object2 » представляют сложные объекты. Если выводить их обычным методом, мы показали , что будет в консоли. Когда только два объекта, тогда более менее читабельно. Но если будет 20 или 50 объектов? Наверное , читать будет не очень удобно. Чтобы улучшить читаемость информаци и, можно вывести их в консоль в табличном представлении. Для этого нужна другая команда:
console.table(<выводимая информация>);
В нашем случае команда будет выглядеть так:
console.table(
Тогда результат в консоли браузера будет вот таким:
(index) |
id |
verified |
objectcolor |
object1 |
first |
true |
«white» |
object2 |
second |
false |
«black» |
Согласитесь, что так уже полегче читать?
Групповой вывод в JS-консоль
Бывают случаи, когда в консоль нужно вывести сгруппированную информацию, которая каким-то образом связана между собой. Тогда в консоли будет отчетливо видно , что и к чему относится и какая связь между сообщениями. Групповой вывод в JS — консоль осуществляется при помощи команды :
console.groupe(<информация для вывода>)
Например , нужно вывести информацию о покупателях интернет-магазина:
console.group(«Информация о покупателе»);
console.log(«Имя: Дормидонт»);
console.log(«Отчество: Платонович»);
//Далее формируем вложенную группу
console.group(«Адрес»);
console.log(Страна: Тринидад и Тобаго);
console.log(Город:Чагуанас);
console.log(Улица:Черчилль-Рузвельта);
console.groupEnd();
console.groupEnd();
В результате такой организации вывода мы получим вложенный список «информация о покупателе», который можно будет свернуть или развернуть, чтобы увидеть всю информацию о покупателе «Дормидонте Платоновиче».
Вывод предупреждений в JS-консоль
-
сообщения- « предупреждения » будут выделены желтым цветом, а перед ними будет стоять иконка « восклицательный знак в треугольнике » ;
-
сообщения- « ошибки » будут выделены красным цветом, а перед ними будет располагаться иконка « крестик в красном круге » .
Отладка JS: полезные команды для консоли
-
Команда « console.trace » . Это специализированная команда, которая выведет результат трассировки стека и покажет, что происходит в программе в конкретное время и в конкретном месте. Обычно этой командой в консоль выводят сообщения, которые помогают контролировать исполнение « внутренних » механизмов программы.
-
Команда « console.time » . При помощи этой команды можно измерить время исполнения конкретных операций в коде. Например, если операция исполнилась в указанное время, тогда вывести об этом сообщение. Это полезно, так как каждому веб-разработчику необходимо заботит ь ся о производительности собственной программы.
Заключение
Сегодня мы рассказали , что вывод какого-либо сообщения в JS-консоль может быть разным. Функция « console.log()» » отвечает за вывод информации в консоль. Если ею правильно манипулировать, тогда и сообщения в консоли будут разны ми.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.