LoginSignup

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

【初心者】JavaScriptの「console.log()」の「console」について教えて下さい。

javascript勉強中です。

【質問】
「console.log()」の「console」について教えて下さい。

この「console」の部分の意味は

「WEB API」の「console」オブジェクトを、JavaScriptを書いて、「WEB API」を使用している状況なのか?

それともJavaScriptのグローバルオブジェクトを、JavaScriptを書いて「メソッド」として使用している状況なのか?

のどちらでしょうか?

MDNやCHATGPTで調べても、いまいち理解できませんでした。

理解を深めたいので、何卒よろしくお願いします。

0

3Answer

「WEB API」の「console」オブジェクトを、JavaScriptを書いて、「WEB API」を使用している状況なのか?

それともJavaScriptのグローバルオブジェクトを、JavaScriptを書いて「メソッド」として使用している状況なのか?

回答

どちらもあてはまります。見方の違いです。
要約すると、

  • 一番目は設計としての「console」に関する言及
  • 二番目は実装としての「console」に関する言及
    です。

ただし両者の境界は完全に分離しているものではなく、重なる部分があります。

補足

設計としての「console」

・Web APIである Console API は、どちらかといえば設計仕様としての意味を持ちます。
「console というオブジェクトはどのようなメソッドやプロパティを持っているか」とか「logというメソッドはどのように動作する」、「dir というメソッドはどのように動作する」とかを規定した概念上の決まりみたいなものが、Web APIの一部としての Console API 仕様に規定されています。

実装としての「console」

・一方、具体的に利用する場合、「console」という名前は、グローバル名前空間に置かれており、どこからでもアクセスできます。 この名前によってアクセス可能な console オブジェクトは、前述の仕様に則って log や dir 等のメソッドを持っています。各メソッドは仕様に基づいてコンソールへの出力に関連する機能が実装されています。

ただし、APIに規定されたオブジェクトのメソッドを使うことを「APIを実行する」と言ったりするので、Web API の文脈で言及されているからといって、直ちに実装を意味しないとは限りません。


まとめ

console.log("出力したい文字列");という式で、出力したい文字列が出力できるのは、その振る舞いがWeb API(の一部である Console API)仕様に規定されており、それをブラウザの作り手がその通りに実装しているからです。
この意味で、「Web API」仕様に規定された「console」オブジェクトを使用している状況に該当します。

console.log("出力したい文字列");という JavaScript の式は、グローバル名前空間にある、console という名前のオブジェクトにアクセスし、そのlog メソッドを、引数をつけて呼び出しているものです。
この意味でJavaScriptにおいて、グローバルオブジェクトのメソッドを使用している状況に該当します。

くりかえしますが、両者の境界は完全に分離しているものではなく、重なる部分があります。

8

Comments

  1. @m100010eguchi

    Questioner

    @Qnoir
    丁寧なご回答に感謝いたします。
    大変わかりやすく勉強になりました。

    また、以下のように理解いたしました。

    console.log("出力したい文字列"); はjavascriptのメソッドである。

    このメソッドをブラウザ上で使用した場合の振る舞いが、
    Web API(の一部である Console API)に規定されている。

    よって実務では、端的に「メソッドを使用して、コンソールにテキストを表示すること」を指すことが一般的である。(WEB APIで規定されているのは周知の事実である。)

    お忙しい中、ご回答ありがとうございました。

ウェブブラウザで実行してる場合は
F12で開発者ツールを出してみてください
そこにコンソールというタブがあるはずです
そこにログが出力されます。

2

Comments

  1. @m100010eguchi

    Questioner

    @marisachi426
    大変勉強になりました。
    お忙しい中、ご回答ありがとうございました。

consoleが正統派ですが、私はalert派です。

unixにlogger関数や、他の言語には標準エラー出力(stderr)がありますが、JavaScriptはwebブラウザーの言語として開発されたのでconsole.log()に出力し、F12で確認することになっています。上記サイトにlog以外の説明もありますのでご参考ください。

1

Comments

  1. @m100010eguchi

    Questioner

    @HalHarada
    大変勉強になりました。
    お忙しい中、ご回答ありがとうございました。

Your answer might help someone💌