JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのconsole.dirとconsole.logの違いとは?使い分けを徹底解説

console.log と console.dir の基本的な違い

JavaScript のデバッグで頻繁に使われる console.log()console.dir() は、似たような目的で使用されますが、オブジェクトを出力する際の挙動に明確な違いがあります。

console.log() の特徴

console.log() は、引数として渡されたオブジェクトの toString 表現を表示します。文字列や数値などのプリミティブ値をそのまま出力するのに適しており、複数の値をカンマ区切りで同時に渡すことも可能です。

const user = { name: "太郎", age: 30 };
console.log(user);
// { name: '太郎', age: 30 }

console.dir() の特徴

console.dir() は、指定された JavaScript オブジェクトのプロパティ一覧を、対話的に操作できるリスト形式で表示します。出力は階層構造になっており、開閉用の三角アイコン(ディスクロージャートライアングル)をクリックすることで、子オブジェクトの内容を段階的に展開しながら確認できます。

console.dir(user);
// ▼ Object
//     name: "太郎"
//     age: 30

DOM要素を出力したときの違いが顕著

両者の違いが最もはっきり現れるのは、DOM 要素を出力するケースです。

  • console.log(element): HTML のタグ構造そのものが出力される
  • console.dir(element): textContent、children、classList など、要素が持つプロパティが一覧表示される
const div = document.querySelector("div");

console.log(div);
// <div>...</div>(HTMLとして表示)

console.dir(div);
// div {...}(オブジェクトのプロパティ一覧として表示)

Node.js 環境での挙動の違い

ブラウザ環境では単純なオブジェクトの場合、両者の見た目がほぼ同じになることもあります。しかし Node.js では、console.dir() が内部的に util.inspect を利用してオブジェクトを詳細かつ整形して出力するため、深いネスト構造を持つオブジェクトの調査に向いています。

使い分けのポイントまとめ

  • 文字列や数値など、値をそのまま確認したい場合console.log()
  • オブジェクトの内部構造やプロパティを詳しく調べたい場合console.dir()
  • DOM 要素のプロパティを確認したい場合console.dir() が特に便利

日常的なデバッグでは console.log() だけで十分な場面が多いですが、オブジェクトの詳細な構造を把握したい場面では console.dir() を使い分けることで、デバッグ効率を大幅に向上させることができます。

  1. C#の==演算子とEquals()メソッドの違いを徹底解説

    C#で文字列を比較する方法には、主に「==(等値演算子)」と「Equals()メソッド」の2つがあります。一見するとどちらも同じ結果を返すように見えますが、内部ではまったく異なる動作を行います。この記事では、両者の違いをサンプルコードとともにわかりやすく解説します。 ==演算子とEquals()メソッドの基本的な違い ==演算子は比較演算子であり、変数が宣言された型に基づいて比較を行います。特にobject型として扱われる場合は参照の同一性(同じオブジェクトインスタンスを指しているかどうか)を判定します。 一方、Equals()メソッドは文字列の内容そのものを比較します。つまり、Equals

  2. 【初心者向け】Pythonの関数とメソッドの違いを徹底解説!基本構文と実例つき

    関数(Function)とは 関数とは、特定のタスクを実行するためにまとめられたコードブロックです。独自のスコープを持ち、名前を指定して呼び出します。引数は0個でも複数個でもよく、処理の終了時に値を返すことも、返さないことも可能です。 関数の基本構文 def 関数名(引数1, 引数2, ...): # 関数本体 それでは、ごくシンプルな「sum」という関数を作成してみましょう(関数名は自由に付けてかまいません)。この関数は num1 と num2 という2つの引数を受け取り、その合計を返します。sum(5, 6) のように呼び出すと、11 が返されます。 def sum(num1