console.log()

Wypisuje wartości w konsoli przeglądarki. Obiekt console ma też metody warn(), error(), table(), group(), time(), count() i assert().

Zwraca
undefined
Na tej stronie

Przykład

#
JavaScript
const user = { name: 'Ania', level: 7 }
const badges = ['Start', 'Seria 7 dni']

console.log('Witaj,', user.name)
console.log('Poziom:', user.level, 'Odznaki:', badges.length)
console.log(user)
console.log(badges)
console.info('Odblokowano moduł 3')
console.warn('Zostały 2 jednostki paliwa')
console.error('Nie udało się zapisać postępu')
Konsola
Witaj, Ania
Poziom: 7 Odznaki: 2
{ name: 'Ania', level: 7 }
['Start', 'Seria 7 dni']
Odblokowano moduł 3
Zostały 2 jednostki paliwa
Nie udało się zapisać postępu

W konsoli pod przykładem ostrzeżenie i błąd mają inne kolory niż zwykłe wpisy. W narzędziach deweloperskich przeglądarki obiekty i tablice można dodatkowo rozwinąć.

Definicja i zastosowanie

#

Metoda console.log() wypisuje w konsoli narzędzi deweloperskich dowolne wartości: napisy, liczby, tablice, obiekty czy elementy DOM. W Chrome konsolę otworzysz klawiszem F12 albo skrótem Ctrl+Shift+J (na Macu Cmd+Option+J). Metoda przyjmuje wiele argumentów i wypisuje je w jednym wierszu, oddzielone spacjami. To najprostszy sposób, żeby podejrzeć, co dzieje się w programie.

Obiekt console ma więcej metod. console.info(), console.warn() i console.error() działają jak log(), ale oznaczają wagę komunikatu: ostrzeżenia są żółte, błędy czerwone, a w narzędziach można je filtrować. console.table() pokazuje tablicę obiektów jako tabelę, a console.group() i console.groupEnd() zbierają wpisy w zwijaną grupę.

Przy szukaniu błędów przydają się też liczniki i pomiary: console.count(etykieta) liczy, ile razy wykonał się dany fragment kodu, console.time() i console.timeEnd() mierzą czas między dwoma miejscami, a console.assert(warunek, komunikat) wypisuje błąd tylko wtedy, gdy warunek jest fałszywy.

Konsola przeglądarki pokazuje obiekty „na żywo”: po rozwinięciu obiektu widzisz jego aktualny stan, a nie ten z chwili wypisania. Jeśli potrzebujesz migawki, wypisz kopię, np. console.log(structuredClone(obiekt)) albo JSON.stringify(obiekt).

Składnia

#
Składnia
console.log(value1, value2, …)
console.info(…)
console.warn(…)
console.error(…)
console.table(data)
console.group(label)
console.groupEnd()
console.count(label)
console.time(label)
console.timeEnd(label)
console.assert(condition, message)

Parametry

#
  • value1…valueN

    dowolne wartości

    Wartości do wypisania. Kilka argumentów pojawi się w jednym wierszu, oddzielonych spacjami.
  • data

    tablica lub obiekt

    W console.table(): dane do pokazania w tabeli, najczęściej tablica obiektów.
  • label

    opcjonalny, napis

    Etykieta grupy, licznika albo pomiaru czasu. Liczniki i pomiary bez etykiety używają nazwy "default".
  • condition

    dowolna wartość

    W console.assert(): warunek. Komunikat pojawi się tylko wtedy, gdy warunek jest fałszywy.

Więcej przykładów

#
Tablica obiektów w console.table()
JavaScript
const ranking = [
  { name: 'Ania', points: 320 },
  { name: 'Kuba', points: 280 },
  { name: 'Ola', points: 250 }
]

console.table(ranking)
Konsola
[{ name: 'Ania', points: 320 }, { name: 'Kuba', points: 280 }, { name: 'Ola', points: 250 }]

Konsola na tej stronie wypisuje dane tak jak console.log(). W narzędziach deweloperskich przeglądarki zobaczysz prawdziwą tabelę z kolumnami (index), name i points.

Grupy, liczniki i pomiar czasu
JavaScript
console.group('Moduł 1: HTML')
console.log('Lekcja 1: Znaczniki')
console.log('Lekcja 2: Atrybuty')
console.groupEnd()

for (const answer of ['A', 'C', 'A']) {
  console.count(answer)
}

console.time('sortowanie')
Array.from({ length: 10000 }, () => Math.random()).sort()
console.timeEnd('sortowanie')
Wynik
Moduł 1: HTML
  Lekcja 1: Znaczniki
  Lekcja 2: Atrybuty
A: 1
C: 1
A: 2
sortowanie: 3.2109375 ms

Konsola na tej stronie nie obsługuje tych metod, dlatego przykład się nie uruchamia. Wynik pokazuje, co wypisze Chrome: wpisy z grupy są wcięte i można je zwinąć, a zmierzony czas będzie inny przy każdym uruchomieniu.

Sprawdzanie warunków przez console.assert()
JavaScript
function addPoints(user, points) {
  console.assert(points > 0, `Nieprawidłowa liczba punktów: ${points}`)
  user.points += points
}

const user = { name: 'Kuba', points: 100 }
addPoints(user, 20)
addPoints(user, -5)
console.log(user.points)
Wynik
Assertion failed: Nieprawidłowa liczba punktów: -5
115

Wynik pochodzi z konsoli Chrome, bo konsola na tej stronie nie obsługuje console.assert(). Metoda nie przerywa programu, tylko wypisuje błąd, dlatego punkty i tak zostały odjęte. Gdy dalsze działanie nie ma sensu, rzuć wyjątek przez throw.

Obsługa przeglądarek

#

Szeroko dostępne

Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.

  • Chrome
  • Edge
  • Firefox
  • Safari

Dobre praktyki

#
  • Wypisuj zmienne w obiekcie: console.log({ points, level }) pokaże nazwy razem z wartościami, np. { points: 120, level: 3 }.
  • Tablice obiektów oglądaj przez console.table(). Porównanie wielu wierszy w tabeli jest dużo łatwiejsze niż w zwiniętych obiektach.
  • Przed publikacją strony usuń zbędne console.log(). Dużo wpisów spowalnia stronę, a wypisane dane może zobaczyć każdy, kto otworzy konsolę.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.