すべてのブラウザーは、WebプラットフォームAPIと対話できるコンソールを公開し、ページで実行されているJavaScriptコードによって生成されたメッセージを出力することでコードの内部を確認することもできます。
すべてのブラウザは、あなたが対話できるコンソールを公開していますWebプラットフォームAPIまた、によって生成されたメッセージを印刷することにより、コードの内部を確認できます。JavaScriptページで実行されているコード。
- コンソールの概要
- console.logフォーマットを使用する
- コンソールをクリアします
- 要素を数える
- より複雑なオブジェクトをログに記録する
- さまざまなエラーレベルのログ
- ナビゲーション中にログを保存する
- コンソールメッセージのグループ化
- スタックトレースを印刷する
- 費やした時間を計算する
- CPUプロファイルを生成する
コンソールの概要
コンソールツールバーはシンプルです。コンソールメッセージをクリアするためのボタンがあります。これは、クリックして実行することもできます。cmd-K
macOSで、またはctrl-K
Windowsでは、フィルタリングサイドバーをアクティブにする2番目のボタン。テキスト、またはメッセージの種類(エラー、警告、情報、ログ、デバッグメッセージなど)でフィルタリングできます。
ネットワークで生成されたメッセージを非表示にして、JavaScriptログメッセージのみに焦点を当てることもできます。
コンソールは、メッセージを表示できる場所であるだけでなく、JavaScriptコード、および多くの場合DOMと対話するための最良の方法でもあります。または、ページから情報を取得するだけです。
最初のメッセージを入力しましょう。 >に注意して、そこをクリックして入力しましょう
console.log('test')
コンソールは、REPL、これはread-eval-printループを意味します。つまり、JavaScriptコードを解釈して、何かを出力します。
console.logフォーマットを使用する
ご覧のとおり、console.log('test')
コンソールに「test」を出力します。
使用するconsole.log
JavaScriptコードでは、静的な文字列を出力するなどしてデバッグに役立ちますが、JavaScriptのネイティブ型(整数など)またはオブジェクトの変数を渡すこともできます。
複数の変数をに渡すことができますconsole.log
、 例えば:
console.log('test1', 'test2')
変数とフォーマット指定子を渡すことで、きれいなフレーズをフォーマットすることもできます。
例えば:
console.log('My %s has %d years', 'cat', 2)
%s
変数を文字列としてフォーマットします%d
または%i
変数を整数としてフォーマットします%f
変数を浮動小数点数としてフォーマットします%o
DOM要素の印刷に使用できます%O
オブジェクト表現を印刷するために使用されます
例:
console.log('%o, %O', document.body, document.body)
もう1つの便利なフォーマット指定子は%c
、CSSを渡して文字列をフォーマットすることができます。例えば:
console.log(
'%c My %s has %d years',
'color: yellow; background:black; font-size: 16pt',
'cat',
2
)
コンソールをクリアします
作業中にコンソールをクリアするには、さまざまな入力方法を使用する3つの方法があります。
最初の方法は、コンソールログのクリアコンソールツールバーのボタン。
2番目の方法はタイプすることですconsole.clear()
コンソール内、またはあなたのJavaScript関数それはあなたのアプリ/サイトで実行されます。
入力することもできますclear()
。
3番目の方法は、キーボードショートカットを使用することです。cmd-k
(mac)またはctrl + l
(勝つ)
要素を数える
console.count()
便利な方法です。
このコードを取る:
const x = 1
const y = 2
const z = 3
console.count(
'The value of x is ' + x + ' and has been checked .. how many times?'
)
console.count(
'The value of x is ' + x + ' and has been checked .. how many times?'
)
console.count(
'The value of y is ' + y + ' and has been checked .. how many times?'
)
何が起こるかというと、countは文字列が出力された回数をカウントし、その横にカウントを出力します。
あなたはただリンゴとオレンジを数えることができます:
const oranges = ['orange', 'orange']
const apples = ['just one apple']
oranges.forEach(fruit => {
console.count(fruit)
})
apples.forEach(fruit => {
console.count(fruit)
})
より複雑なオブジェクトをログに記録する
console.log
変数を検査するのはかなり素晴らしいです。オブジェクトを渡すこともでき、読みやすい方法で印刷するために最善を尽くします。ほとんどの場合、これはオブジェクトの文字列表現を出力することを意味します。
たとえば、試してみてください
console.log([1, 2])
オブジェクトを印刷する別のオプションは、console.dir
:
console.dir([1, 2])
ご覧のとおり、このメソッドは変数をJSONのような表現で出力するため、すべてのプロパティを調べることができます。
console.dirが出力するのと同じことは、次のことによって達成できます。
console.log('%O', [1, 2])
どちらを使用するかは、もちろんデバッグする必要があるものによって異なり、2つのうちの1つが最適な作業を実行できます。
別の機能はconsole.table()
素敵なテーブルを印刷します。
要素の配列を渡すだけで、各配列アイテムが新しい行に出力されます。
例えば
console.table([[1, 2], ['x', 'y']])
または、配列の代わりにObject Literalを渡すことで列名を設定して、オブジェクトプロパティを列名として使用することもできます。
console.table([
{ x: 1, y: 2, z: 3 },
{ x: 'First column', y: 'Second column', z: null }
])
console.table
より強力な場合もあり、オブジェクトを含むオブジェクトリテラルを渡して、列名を含む配列を渡すと、オブジェクトリテラルから取得した行インデックスを含むテーブルが出力されます。例えば:
const shoppingCart = {}
shoppingCart.firstItem = { color: 'black', size: 'L' }
shoppingCart.secondItem = { color: 'red', size: 'L' }
shoppingCart.thirdItem = { color: 'white', size: 'M' }
console.table(shoppingCart, ['color', 'size'])
さまざまなエラーレベルのログ
ご覧のとおり、console.logはコンソールでメッセージを印刷するのに最適です。
ここで、さまざまなレベルのエラーを暗黙的に示すため、デバッグに役立つ3つの便利なメソッドを見つけます。
最初、console.info()
ご覧のとおり、横に小さな「i」が印刷されているので、ログメッセージが単なる情報であることを明確にしています。
第二に、console.warn()
黄色の感嘆符を印刷します。
コンソールフィルタリングツールバーをアクティブにすると、コンソールでタイプに基づいてメッセージをフィルタリングできることがわかります。たとえば、[警告]をクリックすると、警告ではないすべての印刷メッセージが表示されるため、メッセージを区別するのに非常に便利です。非表示になります。
3番目の機能はconsole.error()
これは他のものとは少し異なります。エラーがあることを明確に示す赤いXを出力することに加えて、エラーを生成した関数の完全なスタックトレースがあるため、修正を試みることができます。
ナビゲーション中にログを保存する
コンソールメッセージは、チェックしない限り、すべてのページナビゲーションでクリアされます。ログを保存するコンソール設定:
コンソールメッセージのグループ化
コンソールメッセージのサイズが大きくなる可能性があり、エラーをデバッグしようとしているときのノイズが圧倒される可能性があります。
この問題を制限するために、コンソールAPIは便利な機能を提供します:コンソールメッセージをグループ化します。
最初に例を見てみましょう。
console.group('Testing the location')
console.log('Location hash', location.hash)
console.log('Location hostname', location.hostname)
console.log('Location protocol', location.protocol)
console.groupEnd()
ご覧のとおり、コンソールはグループを作成し、そこにログメッセージがあります。
同じことを行うことができますが、ノイズをさらに制限するために、オンデマンドで開くことができる折りたたまれたメッセージを出力します。
console.groupCollapsed('Testing the location')
console.log('Location hash', location.hash)
console.log('Location hostname', location.hostname)
console.log('Location protocol', location.protocol)
console.groupEnd()
良い点は、これらのグループをネストできるので、最終的には
console.group('Main')
console.log('Test')
console.group('1')
console.log('1 text')
console.group('1a')
console.log('1a text')
console.groupEnd()
console.groupCollapsed('1b')
console.log('1b text')
console.groupEnd()
console.groupEnd()
スタックトレースを印刷する
関数のコールスタックトレースを印刷すると、質問に答えるのに役立つ場合があります。どのようにしてコードのその部分に到達しましたか?
あなたはを使用してそうすることができますconsole.trace()
:
const function2 = () => console.trace()
const function1 = () => function2()
function1()
費やした時間を計算する
関数の実行にかかる時間を簡単に計算できます。time()
そしてtimeEnd()
const doSomething = () => console.log('test')
const measureDoingSomething = () => {
console.time('doSomething()')
//do something, and measure the time it takes
doSomething()
console.timeEnd('doSomething()')
}
measureDoingSomething()
CPUプロファイルを生成する
DevToolsを使用すると、任意の機能のCPUプロファイルパフォーマンスを分析できます。
手動で開始することもできますが、最も正確な方法は、監視する対象をprofile()
そしてprofileEnd()
コマンド。彼らはに似ていますtime()
そしてtimeEnd()
ただし、時間を測定するだけでなく、より詳細なレポートを作成します。
const doSomething = () => console.log('test')
const measureDoingSomething = () => {
console.profile('doSomething()')
//do something, and measure its performance
doSomething()
console.profileEnd()
}
measureDoingSomething()
私の無料ダウンロードJavaScriptビギナーズハンドブック
その他のブラウザチュートリアル:
- HTML5で利用できるいくつかの便利なトリック
- CMSベースのWebサイトをオフラインで機能させる方法
- プログレッシブウェブアプリの完全ガイド
- Fetch API
- プッシュAPIガイド
- チャネルメッセージングAPI
- サービスワーカーのチュートリアル
- キャッシュAPIガイド
- 通知APIガイド
- IndexedDBに飛び込む
- セレクターAPI:querySelectorおよびquerySelectorAll
- 延期と非同期でJavaScriptを効率的にロードする
- ドキュメントオブジェクトモデル(DOM)
- Web Storage API:ローカルストレージとセッションストレージ
- HTTPCookieのしくみを学ぶ
- 履歴API
- WebP画像形式
- XMLHttpRequest(XHR)
- 詳細なSVGチュートリアル
- データURLとは
- Webプラットフォームを学ぶためのロードマップ
- CORS、クロスオリジンリソースシェアリング
- Webワーカー
- requestAnimationFrame()ガイド
- Doctypeとは何ですか
- DevToolsコンソールとコンソールAPIの操作
- 音声合成API
- プレーンJavaScriptでDOMreadyイベントを待つ方法
- DOM要素にクラスを追加する方法
- querySelectorAllからDOM要素をループする方法
- DOM要素からクラスを削除する方法
- DOM要素にクラスがあるかどうかを確認する方法
- DOMノード値を変更する方法
- querySelectorAllから返されたDOM要素のリストにクリックイベントを追加する方法
- WebRTC、リアルタイムWeb API
- JavaScriptで要素のスクロール位置を取得する方法
- DOM要素を置き換える方法
- 入力ファイルフィールドの画像のみを受け入れる方法
- なぜブラウザのプレビューバージョンを使用するのですか?
- Blobオブジェクト
- ファイルオブジェクト
- FileReaderオブジェクト
- FileListオブジェクト
- ArrayBuffer
- ArrayBufferView
- URLオブジェクト
- 型付き配列
- DataViewオブジェクト
- BroadcastChannel API
- Streams API
- FormDataオブジェクト
- ナビゲーターオブジェクト
- GeolocationAPIの使用方法
- getUserMedia()の使用方法
- ドラッグアンドドロップAPIの使用方法
- Webページのスクロールを操作する方法
- JavaScriptでのフォームの処理
- キーボードイベント
- マウスイベント
- タッチイベント
- DOM要素からすべての子を削除する方法
- バニラJavascriptを使用してHTML属性を作成する方法
- JavaScriptを使用してチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
- JavaScriptを使用してクリップボードにコピーする方法
- JavaScriptを使用してボタンを無効にする方法
- ブラウザでページを編集可能にする方法
- URLSearchParamsを使用してJavaScriptでクエリ文字列値を取得する方法
- ページからすべてのCSSを一度に削除する方法
- insertAdjacentHTMLの使用方法
- Safari、終了する前に警告する
- JavaScriptを使用してDOMに画像を追加する方法
- フォームをリセットする方法
- GoogleFontsの使い方