Open1

今更聞けないconsole.log()とconsole.dir()の本当の違い

EriFuruyama@KEY4d LAB.EriFuruyama@KEY4d LAB.

某サイトには、console.log()は変数の値を横方向で表示する一方、console.dir()は縦方向で表示するとある。見やすさの問題だと。ケースバイケースで、「好み」であるという。
ンなわけあるかい。

ということで本当の違いは以下の通り。

・console.dir()はオブジェクトをJSON型で表示する。
表示の仕方が、ヒエラルキーになっていて、親子関係がわかる形。

・console.log()はオブジェクトをhtml/xml型で表示する

簡単にいうとconsole.dirはあるオブジェクトに対してJSの利用可能な全てのプロパティ、メソッドを表示するが、console.log()はしない。
例えば、DOMエレメントをコンソールした場合、以下のような違いがある。

●console.log()の場合

console.log(document.body)

出力結果

<body class="faq">
 <header></header>
<main>
   <div></div>
</main>
<footer></footer>
</body>

●console.dir()の場合

console.dir(document.body)

出力結果

body.faq
 aLink:""
 attributes:""
 background: ""
 baseURI:""