5 функций объекта Console, о которых Вы не знали

https://shellycloud.com/blog/2014/11/five-functions-of-the-console-object-you-didnt-know
  • Перевод
Не все знают, что console.log() можно использовать не только для логирования, но и для еще нескольких полезных операций. Я выбрал 5 наиболее интересных методов использования Console, подходящих для повседневной жизни.

Все описанные функции прекрасно работают в Google Chrome 38



console.assert(expression, message)

Если значение первого аргумента ложно, система запишет сообщение из второго аргумента. Если утверждение истинно, ничего записано не будет.
> console.assert(document.querySelector('body'), "Missing 'body' element")

> console.assert(document.querySelector('.foo'), "Missing '.foo' element")
[Error] Assertion failed: Missing '.foo' element




console.table(object)

Эта функция отображает предоставленных объект или массив в таблице:

Чтобы узнать о console.table() побольше, рекомендую прочитать статью Мариуса Шульца «Advanced JavaScript Debugging with console.table()»



console.profile(name)

console.profile(name) выводит нагрузку на процессор в консоль. Можно использовать имя отчета в качестве аргумента. Каждый запуск сохраняется в отдельной вкладке выпадающего меню. Не забывайте закрывать отчет с помощью console.profileEnd().




console.group(message)

console.group(message) группирует все логи после себя до момента получения команды console.groupEnd(). Списки могут ветвиться. console.groupCollapsed(message) работает аналогично, разница лишь в отображении.




console.time(name)

console.time(name) запускает таймер с именем, указанным в аргумента, который считает время до того момента, пока он не будет остановлен командой console.timeEnd(name). Конечно, в обеих функциях нужно использовать одно и то же имя.
> console.time('Saving user')
> console.log('User saved')
> console.timeEnd('Saving user')
Saving user: 2.750ms
Поделиться публикацией
Похожие публикации
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама
Комментарии 13
  • +27
  • 0
    Кроме как в хроме нигде больше эти функции не работают?
  • +2
    Как показала практика, измерение времени через консоль бесполезно в IE.
    Почему-то при открытой консоли (отладку делать не обязательно, достаточно просто открыть) скрипты очень сильно замедляются.
    Обычно в несколько раз, но пиковый случай из моей практики — на 2(!) порядка.
    • +1
      Так это понятно, важно не только и не столько абсолютные цифры времени исполнения, а относительные и изменение после внесения изменений.
      • +3
        Вы так уверены, что относительные сохранятся? Вероятно при открытой консоли отключается часть оптимизаций, либо полностью JIT-компиляция. Почему вы думаете, что для двух вариантов реализации алгоритма это отключение вызовет замедление в одинаковое количество раз?
        • +2
          Я не ставил специальных экспериментов, но по ощущениям там и относительные сильно плавают.
          Да и просто: когда скрипт везде отрабатывает на 0,5 сек, а в IE нужно ждать минуту(!) — это бесит.
        • +2
          При открыток консоли в IE еще и поведение скриптов изменяется…
        • +5
          > 5 функций объекта Console

          Более привычно вместо «функций» использовать термин «методы объекта»
          • –6
            А вот и не факт. Если я положу пару функций в хэш или массив, это еще не делает их методами.
            </зануда>
            • +2
              Но методы объекта console в хроме нельзя вызывать все контекста объекта console! Какие же это функции?
              > var log = console.log
                undefined
              > log(42)
                VM197:2 Uncaught TypeError: Illegal invocation
              
              • –1
                Ок, факт.
                • 0
                  А вообще — спасибо, нужно это помнить, из за этого не работает код вида

                  somePromise
                      .catch(console.error)
                      .then(console.log)
                      .done();
                  

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.