1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ta1m1kamが一人で書くAdvent Calendar 2022

Day 9

Console APIについて

Last updated at Posted at 2022-12-08

概要

フロントエンドエンジニアなら必ず console.log() メソッドを使用したことがあると思います。

console APIにlogの他にもいくつかデバッグを助けるAPIがあるので紹介します。

Tables

console.table() はオブジェクトや配列を表形式で表示してくれます。

console.table({
  'Time Stamp': new Date().getTime(),
  'OS': navigator['platform'],
  'Browser': navigator['appCodeName'],
  'Language': navigator['language'],
});

スクリーンショット 2022-12-06 19.19.48.png

console.table(["hoge","fugo","piyo"])

スクリーンショット 2022-12-06 19.20.46.png

Groups

console.group()を使用すると、コンソールログを折りたたみ可能な表示でグループ化できます。
console.groupCollapsedを使用すると、コンソールログをデフォルトで折りたたまれた形で出力します。

console.group('URL Info');
  console.log('Protocol', window.location.protocol);
  console.log('Host', window.origin);
  console.log('Path', window.location.pathname);
  console.groupCollapsed('Meta Info');
    console.log('Date Fetched', new Date().getTime());
    console.log('OS', navigator['platform']);
    console.log('Browser', navigator['appCodeName']);
    console.log('Language', navigator['language']);
  console.groupEnd();
console.groupEnd();

スクリーンショット 2022-12-06 19.33.51.png

Styled Logs

colorやfont, backgroundなどのcssが console.log() 中で使用することができます。

console.log("%c🐯", "background: #1cce69; font-size:5rem; border-radius: 5px; padding: 100px; ")

スクリーンショット 2022-12-06 19.38.39.png

Time

実行時間の計測も可能です。
console.time()でラベルを渡しタイマーをスタートさせ、 console.timeEnd()に同じラベルを渡すことでタイマーを終了させることでその間の時間を計測することができます。

console.time("concatenation");
let output = "";
for (var i = 1; i <= 1e6; i++) {
  output += i;
}
console.timeEnd("concatenation");

スクリーンショット 2022-12-06 19.44.38.png

Assert

console.assert()は、エラーが発生した時や、特定の条件下のみコンソールにログを出す場合に有効です。
第一引数の条件がtrueである場合は、ログが表示されません。

const errorMsg = 'the # is not even';
for (let num = 2; num <= 5; num++) {
  console.log(`the # is ${num}`);
  console.assert(num % 2 === 0, { num }, errorMsg);
}

スクリーンショット 2022-12-06 19.51.36.png

Count

console.count()を使用することで、同じログメッセージの出力回数をカウントすることができます。
引数に何も指定しない場合は、default: {count}と出力されます。

console.countReset()でカウントをリセットすることができます。

const numbers = [1, 2, 3, 30, 69, 120, 240, 420];
numbers.forEach((name) => {
  console.count("hoge");
});

スクリーンショット 2022-12-06 19.54.33.png

Trace

console.trace()を使用すれば、スタックトレースが出力され、特定のタイミングでどのメソッドがコールされたかがわかります。
ネストされたメソッドのデバッグ等に有効です。

function foo() {
  function bar() {
    console.trace();
  }
  bar();
}

foo();

スクリーンショット 2022-12-06 19.56.33.png

Dir

console.dir()は深くネストしたオブジェクトをデバッグする際に有効です。展開可能なツリー表示フォーマットしてくれます。

const hoge = {
  'Time Stamp': new Date().getTime(),
  'OS': navigator['platform'],
  'Browser': navigator['appCodeName'],
  'Language': navigator['language'],
}
console.dir(hoge)

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?