Node.jsのconsole.logの詳しい使い方

159, 2021-01-16

目次

Node.jsのconsole.log()の使い方

Node.jsではconsole.log()という標準出力にデータを出力する関数があります。
この関数を使うことでコンソール画面に好きなデータを表示することが出来るようになります。

今回はこのconsole.log()の使い方を詳しくまとめました。
具体的には↓を見ていきます。

  • 標準出力とは?

  • console.log()の構造

  • console.log()の使い方

  • console.log()で使えるフォーマット

標準出力とは?

「標準出力」とは、プログラムの標準のデータの出力先のことを指します。
これは一般的にはファイルオブジェクトで表現されます。
Node.jsの実装言語であるC/C++では標準出力のファイルオブジェクトはstdoutというオブジェクトで表現されます。
このファイルオブジェクトに対してデータを書き込むことを、「標準出力へ出力する」と言います。
ファイルオブジェクト自体は普通は端末のディスプレイに繋がっています。また、パイプなどでは別の出力先へ繋ぐことも可能です。

プログラミングではこの標準出力というものを非常によく使います。
標準出力のほかにも「標準入力」や「標準エラー出力」などがあり、これらもファイルオブジェクトで表現されています。

標準出力にはエラーではないデータを出力します。
いっぽう、標準エラー出力にはエラーであるデータを出力します。
このように出力先を使い分けることでプログラムの利便性、デバッグ性が上がり、ソフトウェアの品質が良くなります。
一般的なプログラムはこの2つの出力先を使い分けることが普通です。

「標準出力」と聞いたら「あー、ファイルオブジェクトのことね」ぐらいで認識しておくようにすると良いかもしれません。

console.log()の構造

console.log()の構造は↓のようになっています。

console.log([data][, ...args])

console.log()は第1引数にdataを取り、第2引数に可変長の引数を取ります。
返り値はありません。

console.log()の使い方

console.log()の引数にはあらゆるオブジェクトを渡すことが出来ます。
console.log()その引数のオブジェクトを標準出力へ出力します。
たとえば↓のようにです。

console.log(1)
console.log(1, 2)
console.log(1, 1.23, 'hello')

↑のコードの出力は↓のようになります。

1
1 2
1 1.23 hello

オブジェクトや配列も出力することが出来ます。

const arr = [1, 2, 3]
console.log(arr)

const obj = { a: 1, b: 2 }
console.log(obj)

↑のコードの出力は↓のようになります。

[ 1, 2, 3 ]
{ a: 1, b: 2 }

console.log()で使えるフォーマット

console.log()はC/C++のprintf()のように文字列内のフォーマットにデータを展開することが出来ます。
たとえば整数nを文字列内に展開するには↓のようにします。

const n = 2
console.log('n is %d', n)

↑のコードの出力は↓のようになります。

n is 2

↑の「%d」のことを書式指定子と言います。
%dNumberを出力する指定子です。

書式指定子には%dの他にも↓のようなものがあります。

  • %s ... 文字列

  • %d ... ナンバー

  • %i ... 10進数の整数

  • %f ... 浮動小数点数

  • %j ... JSON

  • %o ... オブジェクト。util.inspect()をオプション{ showHidden: true, showProxy: true }で使うのと同様。

  • %O ... Object。util.inspect()をオプションなしで使うのと同様。

書式指定子は文字列の中で複数使うことが可能です。
その場合、文字列の後に続く引数が順々に指定子に展開されていきます。

console.log('%d %s %f', 1, 'cat', 1.23)
// 1 cat 1.23

引数が指定子が対応していないデータだった場合、出力は不正なものとなります。
たとえば%dに文字列を出力させようとすると↓のようになります。

console.log('%d', 'dog')
// NaN

おわりに

今回はNode.jsのconsole.log()について見て見ました。
利用頻度の高い関数ですが、意外とフォーマットなどを使っている人は少なそうですね。



この記事のアンケートを送信する