Dokumentacja interfejsu Console Utilities API

Kayce Basques
Kayce Basques
Sofia Emelianova
Sofia Emelianova

Interfejs Console Utilities API zawiera zbiór wygodnych funkcji do wykonywania typowych zadań: wybierania i sprawdzania elementów DOM, wysyłania zapytań do obiektów, wyświetlania danych w czytelnym formacie, zatrzymywania i uruchamiania profilera, monitorowania zdarzeń DOM i wywołań funkcji oraz innych zadań.

Szukasz console.log(), console.error() i pozostałych funkcji console.*? Zapoznaj się z dokumentacją Console API.

$_

$_ zwraca wartość ostatnio ocenionego wyrażenia.

W tym przykładzie oceniane jest proste wyrażenie (2 + 2). Następnie oceniana jest właściwość $_, która zawiera tę samą wartość:

$_ to ostatnio ocenione wyrażenie.

W następnym przykładzie oceniane wyrażenie początkowo zawiera tablicę nazw. Po ocenie $_.length w celu znalezienia długości tablicy wartość przechowywana w $_ zmienia się na ostatnio ocenione wyrażenie, czyli 4:

$_ zmienia się, gdy oceniane są nowe polecenia.

$0 – $4

Polecenia $0, $1, $2, $3 i $4 działają jako odwołanie do 5 ostatnich elementów DOM (w tym pseudoelementów, takich jak ::before czy ::after) sprawdzonych w panelu Elementy lub 5 ostatnich obiektów sterty JavaScript wybranych w panelu Profile. $0 zwraca ostatnio wybrany element lub obiekt w JavaScripcie, $1 zwraca drugi ostatnio wybrany element itd.

W tym przykładzie w panelu Elementy wybrany jest element img. W panelu Konsola oceniono $0 i wyświetla ten sam element:

Przykład: 0 PLN.

Obraz poniżej przedstawia inny element wybrany na tej samej stronie. $0 odnosi się teraz do nowo wybranego elementu, a $1 zwraca poprzednio wybrany element:

Przykład: 1 PLN.

$(selektor [, startNode])

$(selector) zwraca odwołanie do pierwszego elementu DOM z określonym selektorem CSS. Gdy ta funkcja jest wywoływana z 1 argumentem, jest skrótem do funkcji document.querySelector().

Ten przykład zwraca odwołanie do pierwszego elementu <img> w dokumencie:

Przykład $('img').

Kliknij prawym przyciskiem myszy zwrócony wynik i wybierz Pokaż w panelu Elementy , aby znaleźć go w DOM, lub Przewiń do widoku , aby wyświetlić go na stronie.

Ten przykład zwraca odwołanie do aktualnie wybranego elementu i wyświetla jego właściwość src:

Przykład $('img').src.

Ta funkcja obsługuje też drugi parametr, startNode, który określa „element” lub węzeł, od którego ma się rozpocząć wyszukiwanie elementów. Domyślna wartość tego parametru to document.

Ten przykład zwraca odwołanie do pierwszego elementu img, który jest elementem podrzędnym devsite-header-background, i wyświetla jego właściwość src:

Przykład $('img', div).src.

$$(selector [, startNode])

$$(selektor) zwraca tablicę elementów pasujących do danego selektora CSS. To polecenie jest równoważne wywołaniu Array.from(document.querySelectorAll()).

Ten przykład używa $$() to create an array of all <img> elements in the current document and displays the value of each element's src property:

let images = $$('img');
for (let each of images) {
  console.log(each.src);
}

Przykład użycia funkcji<!-- notranslate l10n-placeholder: l10n-placeholder3 -->()</code> do utworzenia tablicy wszystkich elementów <code translate=Elementy<img> które pojawiają się w bieżącym dokumencie po wybranym węźle:

let images = $$('img', document.querySelector('.devsite-header-background'));
for (let each of images) {
  console.log(each.src);
}

Przykład użycia $() do wybrania wszystkich obrazów pojawiających się po elemencie div w dokumencie i wyświetlenia ich źródeł.

$x(ścieżka [, startNode])

$x(path) zwraca tablicę elementów DOM pasujących do danego wyrażenia XPath.

Na przykład to polecenie zwraca wszystkie elementy <p> na stronie:

$x("//p")

Przykład użycia selektora XPath

Ten przykład zwraca wszystkie elementy <p>, które zawierają elementy <a>:

$x("//p[a]")

Przykład użycia bardziej skomplikowanego selektora XPath.

Podobnie jak inne funkcje selektora, $x(path) ma opcjonalny drugi parametr, startNode, który określa element lub węzeł, od którego ma się rozpocząć wyszukiwanie elementów.

Przykład użycia selektora XPath z węzłem startNode.

clear()

clear() czyści historię konsoli.

clear();

copy(obiekt)

copy(object) kopiuje do schowka reprezentację ciągu znaków określonego obiektu.

copy($0);

debug(funkcja)

Gdy wywoływana jest określona funkcja, wywoływany jest debugger, który zatrzymuje się w funkcji w panelu Źródła , co umożliwia przechodzenie przez kod i jego debugowanie.

debug(getData);

Przerwanie działania funkcji za pomocą funkcji debug().

Aby zatrzymać zatrzymywanie się w funkcji, użyj undebug(fn) lub wyłącz wszystkie punkty przerwania w interfejsie.

Więcej informacji o punktach przerwania znajdziesz w artykule Wstrzymywanie kodu za pomocą punktów przerwania.

dir(obiekt)

dir(object) wyświetla listę wszystkich właściwości określonego obiektu w stylu obiektu. Ta metoda jest skrótem do metody console.dir() Console API.

Ten przykład pokazuje różnicę między ocenianiem document.body bezpośrednio w wierszu poleceń a używaniem dir() do wyświetlania tego samego elementu:

document.body;
dir(document.body);

Rejestrowanie obiektu document.body z funkcją dir() i bez niej.

Więcej informacji znajdziesz w artykule console.dir() w Console API.

dirxml(obiekt)

dirxml(object) drukuje reprezentację XML określonego obiektu, tak jak jest ona widoczna w panelu Elementy. Ta metoda jest równoważna metodzie console.dirxml().

inspect(obiekt/funkcja)

inspect(object/function) otwiera i wybiera określony element lub obiekt w odpowiednim panelu: panelu Elementy w przypadku elementów DOM lub panelu Profile w przypadku obiektów sterty JavaScript.

Ten przykład otwiera document.body w panelu Elementy:

inspect(document.body);

Sprawdzanie elementu za pomocą funkcji inspect().

Gdy przekazujesz funkcję do sprawdzenia, funkcja otwiera dokument w panelu Źródła , aby można było go sprawdzić.

getEventListeners(object)

getEventListeners(object) zwraca detektory zdarzeń zarejestrowane w określonym obiekcie. Wartość zwracana to obiekt, który zawiera tablicę dla każdego zarejestrowanego typu zdarzenia (np. click lub keydown). Elementy każdej tablicy to obiekty, które opisują detektor zarejestrowany dla każdego typu. Na przykład to polecenie wyświetla listę wszystkich detektorów zdarzeń zarejestrowanych w obiekcie dokumentu:

getEventListeners(document);

Dane wyjściowe funkcji getEventListeners().

Jeśli w określonym obiekcie zarejestrowano więcej niż 1 detektor, tablica zawiera element dla każdego detektora. W tym przykładzie w elemencie dokumentu zarejestrowane są 2 detektory zdarzeń dla zdarzenia click:

Wielu słuchaczy.

Możesz rozwinąć każdy z tych obiektów, aby poznać ich właściwości:

Rozwinięty widok obiektu słuchacza.

Więcej informacji znajdziesz w artykule Sprawdzanie właściwości obiektu.

keys(obiekt)

keys(object) zwraca tablicę zawierającą nazwy właściwości należących do określonego obiektu. Aby uzyskać powiązane wartości tych samych właściwości, użyj values().

Załóżmy na przykład, że Twoja aplikacja zdefiniowała ten obiekt:

let player = {
    "name": "Parzival",
    "number": 1,
    "state": "ready",
    "easterEggs": 3
};

Zakładając, że player został zdefiniowany w globalnej przestrzeni nazw (dla uproszczenia), wpisanie w Konsoli keys(player) i values(player) spowoduje wyświetlenie tych wyników:

Przykład metod keys() i values().

monitor(funkcja)

Gdy wywoływana jest określona funkcja, w konsoli rejestrowany jest komunikat wskazujący nazwę funkcji oraz argumenty przekazywane do funkcji podczas jej wywołania.

function sum(x, y) {
  return x + y;
}
monitor(sum);

Przykład metody monitor().

Aby zatrzymać monitorowanie, użyj unmonitor(function).

monitorEvents(object [, events])

Gdy w określonym obiekcie wystąpi jedno z określonych zdarzeń, obiekt zdarzenia zostanie zarejestrowany w konsoli. Możesz określić pojedyncze zdarzenie do monitorowania, tablicę zdarzeń lub jeden z ogólnych „typów” zdarzeń, które są powiązane z predefiniowanym zbiorem zdarzeń. Zobacz przykłady poniżej.

To polecenie monitoruje wszystkie zdarzenia zmiany rozmiaru w obiekcie okna.

monitorEvents(window, "resize");

zdarzenia zmiany rozmiaru okna monitorowania.

To polecenie definiuje tablicę, która monitoruje zdarzenia „resize” i „scroll” w obiekcie okna:

monitorEvents(window, ["resize", "scroll"])

Możesz też określić jeden z dostępnych „typów” zdarzeń, czyli ciągów znaków, które są powiązane z predefiniowanymi zbiorami zdarzeń. W tabeli poniżej znajdziesz dostępne typy zdarzeń i powiązane z nimi mapowania zdarzeń:

Typ zdarzenia i odpowiadające mu mapowane zdarzenia
mysz„mousedown”, „mouseup”, „click”, „dblclick”, „mousemove”, „mouseover”, „mouseout”, „mousewheel”
klucz„keydown”, „keyup”, „keypress”, „textInput”
dotknij„touchstart”, „touchmove”, „touchend”, „touchcancel”
kontrola„resize”, „scroll”, „zoom”, „focus”, „blur”, „select”, „change”, „submit”, „reset”

Na przykład to polecenie używa typu zdarzenia „key” do wszystkich odpowiadających mu zdarzeń klawiatury w polu tekstowym, które jest obecnie wybrane w panelu Elementy.

monitorEvents($0, "key");

Poniżej znajdziesz przykładowe dane wyjściowe po wpisaniu znaków w polu tekstowym:

Monitorowanie kluczowych zdarzeń.

Aby zatrzymać monitorowanie, użyj unmonitorEvents(object[, events]).

profile([nazwa]) i profileEnd([nazwa])

profile() rozpoczyna sesję profilowania procesora JavaScript z opcjonalną nazwą. profileEnd() kończy profil, automatycznie otwiera panel Wydajność i wyświetla wyniki na ścieżce Główna.

Aby rozpocząć profilowanie:

profile("Profile 1")

Aby zatrzymać profilowanie i zobaczyć wyniki na ścieżce Wydajność > Główna:

profileEnd("Profile 1")

Wynik na ścieżce Wydajność > Główna:

Profil 1 na ścieżce głównej w sekcji Skuteczność.

Profile można też zagnieżdżać. Na przykład to polecenie będzie działać w dowolnej kolejności:

profile('A');
profile('B');
profileEnd('A');
profileEnd('B');

queryObjects(Constructor)

Wywołaj queryObjects(Constructor) z konsoli, aby zwrócić tablicę obiektów utworzonych za pomocą określonego konstruktora. Na przykład:

  • queryObjects(Promise). Zwraca wszystkie instancje Promise.
  • queryObjects(HTMLElement). Zwraca wszystkie elementy HTML.
  • queryObjects(foo), gdzie foo to nazwa klasy. Zwraca wszystkie obiekty, które zostały utworzone za pomocą new foo().

Zakres queryObjects() to aktualnie wybrany kontekst wykonania w konsoli.

table(dane [, kolumny])

Rejestruj dane obiektu w formacie tabeli, przekazując obiekt danych z opcjonalnymi nagłówkami kolumn. Jest to skrót do console.table().

Aby na przykład wyświetlić listę nazw za pomocą tabeli w konsoli, wykonaj te czynności:

let names = [
  { firstName: "John", lastName: "Smith" },
  { firstName: "Jane", lastName: "Doe" },
];
table(names);

Przykład metody table()

Aby skopiować zarejestrowaną tabelę do schowka jako sformatowaną tabelę Markdown lub dane CSV, kliknij tabelę w Konsoli prawym przyciskiem myszy i wybierz odpowiednią opcję kopiowania z menu kontekstowego.

undebug(funkcja)

undebug(function) zatrzymuje debugowanie określonej funkcji, dzięki czemu po wywołaniu funkcji debugger nie jest już wywoływany. Jest używana w połączeniu z debug(fn).

undebug(getData);

unmonitor(funkcja)

unmonitor(function) zatrzymuje monitorowanie określonej funkcji. Jest używana w połączeniu z monitor(fn).

unmonitor(getData);

unmonitorEvents(object [, events])

unmonitorEvents(object[, events]) zatrzymuje monitorowanie zdarzeń w przypadku określonego obiektu i zdarzeń. Na przykład to polecenie zatrzymuje monitorowanie wszystkich zdarzeń w obiekcie okna:

unmonitorEvents(window);

Możesz też selektywnie zatrzymać monitorowanie określonych zdarzeń w obiekcie. Na przykład ten kod rozpoczyna monitorowanie wszystkich zdarzeń myszy w aktualnie wybranym elemencie, a następnie zatrzymuje monitorowanie zdarzeń „mousemove” (być może w celu zmniejszenia szumu w danych wyjściowych konsoli):

monitorEvents($0, "mouse");
unmonitorEvents($0, "mousemove");

values(obiekt)

values(object) zwraca tablicę zawierającą wartości wszystkich właściwości należących do określonego obiektu.

let player = {
    "name": "Parzival",
    "number": 1,
    "state": "ready",
    "easterEggs": 3
};

values(player);

Wynik wartości(gracz).