【JavaScript】console API まとめ

普段開発をしている中で `console.log()` や `console.error()` は比較的頻繁に使用しますが、それ以外はあまり使った経験がありませんでした。

そこで今回は種類や使い方をまとめました。

# メソッドと説明

|No.| メソッド | 説明 |
|:-|:-|:-|
| 1 | `console.assert()`  | 第一引数が `false` の場合、エラーメッセージを出力する。  |
| 2 | `console.clear()`  | 出力されたコンソールをクリアする。  |
| 3 | `console.count()`  | 指定されたラベルでこの行が呼び出された回数をログに出力する。  |
| 4 | `console.countReset()`  | 指定されたラベルのカウント数をリセットする。  |
| 5 | `console.debug()`  | デバッグログレベルでログを出力する。  |
| 6 | `console.dir()`  | オブジェクトをJSON型で出力する。 <br> 階層構造で表示される。  |
| 7 | `console.dirxml()`  | ブジェクトをXML形式で出力する。 <br> 階層構造で表示される。  |
| 8 | `console.error()`  | エラーログレベルでログを出力する。  |
| 9 | `console.group()`  | グループ化してログを出力する。  |
| 10 | `console.groupCollapsed()`  | グループ化して折り畳んだ状態でログを出力する。  |
| 11 | `console.groupEnd()`  | 現在のグループから抜けることができる。  |
| 12 | `console.info()`  | 情報ログレベルでログを出力する。  |
| 13 | `console.log()`  | ログを出力する。  |
|14  | `console.profile()`  | プロファイリングを開始する。  |
| 15 | `console.profileEnd()`  | プロファイリングを終了する。  |
| 16 | `console.table()`  | テーブル形式でログを出力する。  |
| 17 | `console.time()`  | 時間の計測を開始する。  |
| 18 | `console.timeStamp()`  | 時間の計測を終了する。  |
| 19 | `console.trace()`  | スタックとレースを出力する。  |
| 20 | `console.warn()`  | 警告ログレベルでログを出力する。  |

# 使い方
## 1. console.assert()

第一引数が `true` の場合はコンソールに出力されません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/c2f7f173-55b1-f8c8-0767-878a49bbb618.png)

## 2. console.clear()

実行すると出力されていたログがすべてクリアされます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/920d7ffe-1c51-423b-00e0-1f37bb84f9ee.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/0238298c-ff95-8032-37fa-da6668203f82.png)


## 3. console.count()

同じラベルが指定されたメソッドは同じカウンターとしてカウントされます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/6fb55dd5-6c25-f11d-93e9-799dc6326a1c.png)


## 4. console.countReset()

`console.countReset()` を使用すると、
ラベルに指定したカウンターをリセットします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/dd3da7cc-1695-81b9-e14b-84f12ef7f543.png)


## 5. console.debug()

フィルターで `Verbose` を選択すると表示されます。
デフォルトでは表示されません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/56177e6b-fcb4-99bb-6500-f88557a84255.png)


## 6. console.dir()

`console.dir()` を使用すると、
オブジェクトなどをJSON形式の階層構造で表示することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/f9f96316-95d9-09d9-33d9-3f676704812e.png)

## 7. console.dirxml()

`console.dirxml()` を使用すると、
オブジェクトなどをXML形式の階層構造で表示することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/993c3dc0-f860-edaa-cd3f-7068c8a5c89d.png)


## 8. console.error()

エラーログレベルで出力されます。

`console.log()` と異なるスタイルで表示されるため、
発生した場所や原因を特定しやすいです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/d4e9404b-19f3-91ff-7f07-031373bbbe70.png)

## 9. console.group()

ログをグループ化して出力することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/2d3cc960-9dd6-1ae2-b6c9-0f8e6ab7ab7c.png)

## 10. console.groupCollapsed()

`console.groupCollapsed()` を使用すると、
グループ化したログを折り畳んで出力することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/916f5914-13cf-efc7-f25a-9e0243e7fdc4.png)

## 11. console.groupEnd()

`console.groupEnd()` を使用することで、
`console.group()` または `console.groupCollapsed()` が呼び出されてから
出力されたログをグループ化することができます。

## 12. console.info()

ログをインフォレベルで出力することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/40003ceb-a55b-9b1b-db23-11e554acc57f.png)

## 13. console.log()

皆さんお馴染み `console.log()`。
ログをコンソールに出力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/a1f17474-697d-6da4-ee78-67c734ab8670.png)

## 14. console.profile() / console.profileEnd()

実行はできましたが、
Chromeで確認できるところを見つけられませんでした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/a8aba051-7968-d942-3aed-3aa38664e250.png)

## 15. console.table()

表形式でコンソールに出力することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/a3f98332-25f0-db88-e8c5-627f1ab79e8e.png)


## 16. console.time() / console.timeEnd()

`console.time()` を呼び出すと時間の計測が開始され、`console.timeEnd()` が呼び出されると計測が開始してから終了までの経過時間が出力されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/07b47cbf-8e96-80ae-eaed-a4dc17fb570f.png)


## 17. console.timeStamp()

MDNにこちらは非標準であると記載があり、
コンソールに入力はできるものの出力はできませんでした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/23d90c23-6ca4-7091-6132-1bdb7d9ef2df.png)

## 18. console.trace()

`console.trace()` が呼ばれた場所までの経路を表示することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/91017d66-553a-f642-37c9-070135a9da34.png)

## 19. console.warn()

警告レベルでログを出力することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669971/8dcb4c84-e6fd-dcb5-e900-31cce6a64631.png)

# 終わりに
いつもオブジェクトを出力する際は、
`console.log(JSON.stringify(obj));` を使用していたので、
今度からは `console.dir();` も使用してみようと思います。

他にも `console.table()` もどこかのタイミングで使用してみたいです。

色々な種類を知れて勉強になりました。

# 参考文献
https://developer.mozilla.org/ja/docs/Web/API/console