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

Какая польза от console.log?

Пожалуйста, объясните, как использовать его в JavaScript, на примере кода.


person Mihir    schedule 27.12.2010    source источник


Ответы (23)


Это не функция jQuery, а функция для отладки. Вы можете, например, записывать что-то в консоль, когда что-то происходит. Например:

$('#someButton').click(function() {
  console.log('#someButton was clicked');
  // do something
});

Затем вы увидите #someButton was clicked на вкладке «Консоль» Firebug (или в консоли другого инструмента, например, Chrome Web Inspector), когда нажмете кнопку.

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

if (window.console && window.console.log) {
  // console is available
}
person Jan Hančič    schedule 27.12.2010
comment
В инструменты разработчика Google Chrome также интегрирована консоль. - person RobertPitt; 27.12.2010
comment
Это полезно, поскольку вам не нужно удалять код отладки при развертывании в производственной среде ‹- Что, если конечный пользователь откроет Firebug? - person AbdullahC; 27.12.2010
comment
@ Ян: Понятно. Я предположил, что условием if было скрыть ее (как альтернативу удалению строки), а не избежать нулевой ошибки (как альтернативу ее комментированию). - person AbdullahC; 27.12.2010
comment
это также полезно, чтобы не позволять IE выдавать ошибку, если консоль не определена - person Alan Whitelaw; 10.01.2011
comment
Имхо, лучше, чем каждый раз проверять, доступен ли console.log, лучше иметь что-то вроде этого: if (typeof (console) == 'undefined') {console = {'log': function () {return}}} В в таком случае вы можете писать console.log каждый раз, когда вам нужно, не проверяя его наличие! - person Enrico Carlesso; 11.01.2011
comment
if (console.log) (или даже if (console && console.log)) все равно будет выдавать ошибку, если консоль недоступна. Вы должны использовать window.console (поскольку window гарантированно существует) и проверять только один уровень глубины за раз. - person Tgr; 11.01.2011
comment
также можно использовать вот так .... var variable = 12; console.log("variable value equal to %d", variable) - person farid bekran; 17.06.2013
comment
IE сводит меня с ума, он не запускал весь скрипт (из-за console.log между ними). Но когда я открыл консоль, чтобы посмотреть, что не так, все казалось хорошо. Причина: console.log теперь работает (до перезапуска браузера)… Так что спасибо за совет с if (window.console && window.console.log) и censored IE! - person Sandro L; 31.07.2014
comment
OP не упоминает jQuery, и поскольку вы объясняете, что console.log не является функцией jQuery, тогда зачем загромождать ответ, включая то, чего нет? - person Mac; 29.04.2017
comment
@Mac оригинальная версия вопроса, заданного о jQuery, с тех пор она была отредактирована (не знаю почему) другими людьми. Вот почему. - person Jan Hančič; 30.04.2017
comment
Несколько советов: вы можете использовать цвета, чтобы лучше видеть: console.log ('% c Sample Text', 'color: green;'); Или добавьте VAR в текст, используя: console.log (`Sample $ {variable}`, 'color: green;'); - person Gilberto B. Terra Jr.; 29.01.2019

Места, которые можно просмотреть на консоли! Просто чтобы все они были в одном ответе.

Firefox

http://getfirebug.com/

(теперь вы также можете использовать встроенные в Firefox инструменты разработчика Ctrl + Shift + J (Инструменты> Веб-разработчик> Консоль ошибок), но Firebug намного лучше; используйте Firebug)

Safari и Chrome

В основном то же самое.

https://developers.google.com/chrome-developer-tools/docs/overview

https://developer.apple.com/technologies/safari/developer-tools.html

Internet Explorer

Не забывайте, что вы можете использовать режимы совместимости для отладки IE7 и IE8 в IE9 или IE10.

http://msdn.microsoft.com/en-us/library/ie/gg589507(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/dd565628(v=vs.85).aspx

Если вам необходимо получить доступ к консоли в IE6 для IE7, используйте букмарклет Firebug Lite.

http://getfirebug.com/firebuglite/ найдите стабильный букмарклет

http://en.wikipedia.org/wiki/Bookmarklet

Opera

http://www.opera.com/dragonfly/

iOS

Работает со всеми iPhone, iPod touch и iPad.

.com / library / ios / ipad / # DOCUMENTATION / AppleApplications / Reference / SafariWebContent / DebuggingSafarioniPhoneContent / DebuggingSafarioniPhoneContent.html

Теперь с iOS 6 вы можете просматривать консоль через Safari в OS X, если вы подключите свое устройство. Или вы можете сделать это с помощью эмулятора, просто откройте окно браузера Safari и перейдите на вкладку «Разработка». Там вы найдете варианты, позволяющие инспектору Safari взаимодействовать с вашим устройством.

Windows Phone, Android

Оба они не имеют встроенной консоли и возможности букмарклета. Поэтому мы используем http://jsconsole.com/ type: listen, и он предоставит вам тег скрипта для размещения в ваш HTML. С этого момента вы можете просматривать свою консоль на веб-сайте jsconsole.

iOS и Android

Вы также можете использовать http://html.adobe.com/edge/inspect/, чтобы доступ к инструментам веб-инспектора и консоли на любом устройстве с помощью удобного плагина для браузера.


Старые проблемы браузера

Наконец, более старые версии IE будут давать сбой, если вы используете console.log в своем коде и одновременно не открываете инструменты разработчика. К счастью, это легко исправить. Используйте приведенный ниже фрагмент кода в верхней части кода:

 if(!window.console){ window.console = {log: function(){} }; } 

Это проверяет, присутствует ли консоль, и, если нет, устанавливает ее на объект с пустой функцией, называемой log. Таким образом, window.console и window.console.log никогда не будут по-настоящему undefined.

person Fresheyeball    schedule 26.07.2012
comment
Поправьте меня, если ошиблись, но я думаю, что Firebug в Firefox не нужен для просмотра консоли, просто нажмите Ctrl + Shift + J (Инструменты ›Веб-разработчик› Консоль ошибок) - person Dane411; 09.02.2013
comment
@ Dane411, это правда, но firebug лучше и чаще используется. - person Fresheyeball; 13.03.2013
comment
@Fresheyeball Кто-то должен вычистить весь мусор, но я думаю, что в какой-то момент становится менее интересно собирать этих представителей и фактически поддерживать чистоту сообщества. - person andlrc; 31.05.2013
comment
Кто бы ни проголосовал против этого ответа, прокомментируйте. голоса против без комментариев бесполезны - person Fresheyeball; 24.06.2013
comment
перед window.console.log был файл window.dump. Это лучше, чем функция пустого журнала - person OCTAGRAM; 27.06.2013
comment
@OCTAGRAM, вы говорите, что проголосовали против, потому что я не упомянул window.dump в сообщении о console.log? - person Fresheyeball; 29.05.2014
comment
Это требует серьезного редактирования, чтобы обновить его. 6 ссылок в нем теперь мертвы. - person Quentin; 27.03.2019
comment
@Quentin, не стесняйтесь - person Fresheyeball; 27.03.2019

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

console.log('Testing console');

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

person Fibericon    schedule 20.01.2011
comment
Не забудьте сначала определить его, чтобы избежать ошибок в IE: stackoverflow.com/a/7585409/318765 - person mgutt; 15.08.2012

Он отправит сообщение журнала в консоль javascript браузера, например Firebug или Developer Tools (Chrome / Safari) и покажет строку и файл, из которого он был запущен.

Более того, когда вы выводите объект jQuery, он будет включать ссылку на этот элемент в DOM, и щелчок по нему перейдет к нему на вкладке Elements / HTML.

Вы можете использовать различные методы, но имейте в виду, что для того, чтобы он работал в Firefox, у вас должен быть открыт Firebug, иначе вся страница выйдет из строя. Независимо от того, является ли то, что вы регистрируете, является переменной, массивом, объектом или элементом DOM, он предоставит вам полную разбивку, включая прототип для объекта (всегда интересно потрогать). Вы также можете включить сколько угодно аргументов, и они будут заменены пробелами.

console.log(  myvar, "Logged!");
console.info( myvar, "Logged!");
console.warn( myvar, "Logged!");
console.debug(myvar, "Logged!");
console.error(myvar, "Logged!");

Они отображаются с разными логотипами для каждой команды.

Вы также можете использовать console.profile(profileName);, чтобы начать профилирование функции, скрипта и т. Д. А затем закончить его с помощью console.profileEnd(profileName);, и он появится на вкладке «Профили» в Chrome (не знаю, с помощью FF).

Для получения полной справки перейдите на страницу http://getfirebug.com/logging , и я предлагаю вам прочитать ее. (Следы, группы, профилирование, осмотр объекта).

Надеюсь это поможет!

person Fred    schedule 20.01.2011
comment
Почему console.log("x:", x) лучше, чем console.log("x:" + x)? Является ли он менее подверженным ошибкам, поскольку , легче читать, чем +? - person Kevin Meredith; 28.12.2013
comment
На мой взгляд, это немного легче читать, когда вы выводите много разных вещей. В этом случае, вероятно, следует использовать строго +, но я хотел показать, что вы также можете использовать запятые в функциях консоли. Кроме того, это позволяет избежать проблем, если обе переменные являются целыми числами или массивами. - person Fred; 13.01.2014
comment
console.log("x:", x) значительно лучше, потому что, когда x является объектом или массивом (или чем-то еще, кроме строки), он отображается правильно, без преобразования в строку. - person Josef Kufner; 18.09.2014

Здесь нет ничего общего с jQuery, и если вы хотите его использовать, я советую вам сделать

if (window.console) {
    console.log("your message")
}

Таким образом, вы не нарушите свой код, когда он недоступен.

Как предлагается в комментарии, вы также можете выполнить это в одном месте, а затем использовать console.log как обычно

if (!window.console) { window.console = { log: function(){} }; }
person Baptiste Pernet    schedule 27.12.2010
comment
Могу я порекомендовать вместо этого сделать if(!window.console){ window.console = function(){}; } в одном месте, а затем использовать console.log как обычно. - person Fresheyeball; 13.03.2013

console.log не имеет ничего общего с jQuery. Это общий объект / метод, предоставляемый отладчиками (включая отладчик Chrome и Firebug), который позволяет сценарию записывать данные (или объекты в большинстве случаев) в консоль JavaScript.

person Quentin    schedule 27.12.2010

console.log записывает отладочную информацию в консоль в некоторых браузерах (Firefox с установленным Firebug, Chrome, IE8, все, что с установленным Firebug Lite). В Firefox это очень мощный инструмент, позволяющий проверять объекты или проверять макет или другие свойства элементов HTML. Это не связано с jQuery, но есть две вещи, которые обычно выполняются при использовании его с jQuery:

  • установите расширение FireQuery для Firebug. Это, помимо других преимуществ, делает ведение журнала объектов jQuery более приятным.

  • создать оболочку, которая больше соответствует соглашениям о цепочках кода jQuery.

Обычно это означает что-то вроде этого:

$.fn.log = function() {
    if (window.console && console.log) {
        console.log(this);
    }
    return this;
}

который вы затем можете вызвать как

$('foo.bar').find(':baz').log().hide();

чтобы легко проверить внутри цепочек jQuery.

person Tgr    schedule 11.01.2011

console.log не имеет ничего общего с jQuery.

Он записывает сообщение в консоль отладки, например Firebug.

person SLaks    schedule 27.12.2010

Иногда вызывает путаницу то, что для регистрации текстового сообщения вместе с содержимым одного из ваших объектов с помощью console.log вы должны передать каждый из двух в качестве другого аргумента. Это означает, что вы должны разделять их запятыми, потому что, если бы вы использовали оператор + для объединения выходных данных, это неявно вызвало бы метод .toString() вашего объекта. В большинстве случаев это явно не отменяется, и реализация по умолчанию, унаследованная Object, не предоставляет никакой полезной информации.

Пример для использования в консоли:

>>> var myObj = {foo: 'bar'}
undefined
>>> console.log('myObj is: ', myObj);
myObj is: Object { foo= "bar"}

тогда как если бы вы попытались объединить информативное текстовое сообщение вместе с содержимым объекта, вы бы получили:

>>> console.log('myObj is: ' + myObj);
myObj is: [object Object]

Так что имейте в виду, что console.log фактически принимает столько аргументов, сколько вам нужно.

person Thalis K.    schedule 03.03.2013

Используйте console.log, чтобы добавить на страницу отладочную информацию.

Многие люди используют alert(hasNinjas) для этой цели, но с console.log(hasNinjas) легче работать. При использовании всплывающих окон появляется модальное диалоговое окно, которое блокирует пользовательский интерфейс.

Изменить: я согласен с Baptiste Pernet и Jan Hančič, что было бы неплохо сначала проверить, определен ли window.console, чтобы ваш код не сломался, если нет доступной консоли.

person Mark Byers    schedule 27.12.2010

Пример - предположим, вы хотите узнать, в какой строке кода вы смогли запустить свою программу (до того, как она сломалась!), Просто введите

console.log("You made it to line 26. But then something went very, very wrong.")
person Gautam Kshatriya    schedule 26.07.2012

Вы используете его для отладки кода JavaScript с помощью Firebug для Firefox или консоли JavaScript в Браузеры WebKit.

var variable;

console.log(variable);

Он отобразит содержимое переменной, даже если это массив или объект.

Он аналогичен print_r($var); для PHP.

person jondavidjohn    schedule 20.01.2011
comment
Полезный совет ... Я всегда включаю в глобально доступный файл javascript следующее: if (!window.console) { window.console = { log : function() {} }; }. Это позволяет вам забыть удалить случайный оператор отладки. - person roufamatic; 20.01.2011
comment
@roufamatic Я не знаю ... добавление кода для обработки чужого кода кажется довольно ужасным решением ... особенно когда найти / заменить так просто ... - person jondavidjohn; 09.01.2012

Осторожно: если оставить вызовы консоли в производственном коде, ваш сайт не сможет работать в Internet Explorer. Никогда не храните его без упаковки. См .: https://web.archive.org/web/20150908041020/blog.patspam.com/2009/the-curse-of-consolelog

person Harlo Holmes    schedule 26.02.2012
comment
Дело не в том, что консольный журнал сломается, если вы используете компьютер с Windows, но он сломает ваш сайт, если вы используете Internet Explorer. - person Kris Hollenbeck; 14.08.2012
comment
Я думаю, что блог, упомянутый в ответе, больше не существует. - person Tsundoku; 17.07.2017
comment
Исходная ссылка мертва. Я нашел копию веб-архива. - person Alex; 29.08.2017

Раньше отладка JS выполнялась с помощью функции alert() - сейчас это устаревшая практика.

console.log() - это функция, которая записывает сообщение для входа в консоль отладки, например Webkit или Firebug. В браузере вы ничего не увидите на экране. Он записывает сообщение в консоль отладки. Он доступен только в Firefox с Firebug и в браузерах на основе Webkit (Chrome и Safari). Он не работает во всех выпусках IE < / а>.

Объект консоли является расширением DOM.

console.log() следует использовать в коде только во время разработки и отладки.

Считается плохой практикой, когда кто-то оставляет console.log() в файле javascript на рабочем сервере.

person jjpcondor    schedule 05.09.2013

Если ваш браузер поддерживает отладку, вы можете использовать метод console.log () для отображения значений JavaScript.

Активируйте отладку в своем браузере с помощью F12 и выберите «Консоль» в меню отладчика.

Консоль на JavaScript. Попробуйте исправить или «отладить» нефункционирующую программу JavaScript и попрактиковаться в использовании команды console.log (). Существуют ярлыки, которые помогут вам получить доступ к консоли JavaScript в зависимости от используемого вами браузера:

Сочетания клавиш в консоли Chrome

Windows: Ctrl + Shift + J
Mac: Cmd + Option + J

Сочетания клавиш в консоли Firefox

Windows: Ctrl + Shift + K
Mac: Cmd + Option + К

Сочетания клавиш в консоли Internet Explorer

F12 клавиша

Сочетания клавиш в консоли Safari

Cmd + Option + C

person Community    schedule 31.10.2014

console.log - это, в частности, метод, с помощью которого разработчики могут писать код, чтобы незаметно информировать разработчиков о том, что делает код. Его можно использовать, чтобы предупредить вас о проблеме, но он не должен заменять интерактивный отладчик, когда приходит время отлаживать код. Его асинхронный характер означает, что зарегистрированные значения не обязательно представляют значение при вызове метода.

Вкратце: регистрируйте ошибки с помощью console.log (если доступно), затем исправляйте ошибки с помощью выбранного отладчика: Firebug, инструменты разработчика WebKit (встроены в Safari и Chrome), Инструменты разработчика IE или Visual Studio.

person outis    schedule 25.01.2012

Я действительно чувствую легкость веб-программирования, когда начинаю console.log отладку.

var i;

Если я хочу проверить значение i runtime ..

console.log(i);

вы можете проверить текущее значение i на вкладке консоли firebug. Он специально используется для отладки.

person Community    schedule 28.03.2012

Он используется для регистрации (всего, что вы передаете) в консоль Firebug. Основное использование - отладка вашего кода JavaScript.

person Poelinca Dorin    schedule 27.12.2010

Помимо упомянутых выше применений, console.log также может печатать на терминал в node.js. Сервер, созданный с помощью express (например), может использовать console.log для записи в выходной файл регистратора.

person surajck    schedule 28.08.2014

Это не имеет отношения к jQuery. console.log() относится к функции журнала объекта консоли, которая предоставляет методы для записи информации в консоль браузера. Эти методы предназначены только для целей отладки и не должны использоваться для представления информации конечным пользователям.

person Aravinda Meewalaarachchi    schedule 16.10.2019

В java-скриптах нет функций ввода и вывода. Итак, для отладки кода используется метод console.log () - метод логирования. Он будет напечатан в журнале консоли (средства разработки).

Его нет в IE8 и ниже, пока вы не откроете инструмент разработки IE.

person NavyaKumar    schedule 23.02.2015

Цитата из документов MDN здесь

console - содержит множество методов, которые можно вызывать для выполнения элементарных задач отладки, обычно ориентированных на регистрацию различных значений в веб-консоли браузера.

Безусловно, наиболее часто используемым методом является console.log, который используется для регистрации текущего значения, содержащегося внутри определенной переменной.

Как использовать в Javascript?

let myString = 'Hello World';
console.log(myString);

Также помните, что console является частью глобального объекта window в веб-браузере. Таким образом, следующее также технически правильно, но не используется в практическом сценарии.

let myString = 'Hello World';
window.console.log(myString);
person KeshavDulal    schedule 16.08.2020

Я пытаюсь объяснить легко:

Зачем использовать:

Метод console.log () записывает сообщение в консоль и отображает его.

~ очень полезно для тестирования.

~ Используйте их внутри / внутри тегов скрипта.

Как увидеть:

= ›Нажмите F12

Синтаксис:

console.log (сообщение, которое вы хотите отобразить);

~ Принимает параметр и отображает его.

Работа с массивом:

var myArray = ["Ali", "John", "Shahrukh"];
console.log(myArray);

Работа с объектами:

var myObject = { firstname : "Ali", lastname : "Rana" };
console.log(myObject);

Работа с текстом: [метод 1]:

console.log("Hello StackOverflow");

Работа с текстом: [метод 2]

var str = "Hello StackOverflow";
console.log(str);

Работа с числами:

var myvar = '2';
console.log(myvar);

Работа с функцией:

function myfunction() { return (5 * 19); }
console.log(function());

Отображать сообщение с аргументом:

var a = 2;
console.log("The value of a is " + a);

Надеюсь, это может помочь.

person MuhammadAliDEV    schedule 05.05.2021