本文へスキップ
ToolMug

JavaScript をオンラインで実行

JavaScript を貼り付けるか書いて「実行」をクリックすると、console.log、warn、error の出力を確認できます。短いコードの試行、アルゴリズムの練習、処理のデバッグに便利で、トップレベル await にも対応します。コードは別ワーカーで動くため、無限ループでページが固まることもありません。

ブラウザ内で動作 — 入力した内容はアップロードされません

Ctrl+Enter / ⌘+Enter

コンソール

console.log の出力がここに表示されます。

別のワーカー上で実行されます。DOM(document、window)は使えませんが、fetch、タイマー、JSON、Intl などの組み込み機能は使えます。

使い方

  1. 左側にコードを書き、または例を編集します。
  2. 「実行」をクリックするか Ctrl+Enter(Mac は ⌘+Enter)を押します。右側にコンソール出力が表示されます。
  3. 長く実行される場合は「停止」をクリックするか、右下で実行時間の上限を設定します。

オプションの説明

実行環境
ブラウザ内の Web Worker で実行し、ブラウザが対応する最新の JavaScript 構文、fetch、setTimeout、Intl、crypto を使えます。document と window はありません。
コンソール
console.log、info、warn、error、debug、table、count、time/timeEnd と %s、%d、%o のプレースホルダーに対応します。オブジェクトは Node.js に近い形で展開されます。
トップレベル await
コードは async function の中で実行されるため、直接 await を使えます。

出力されるもの

出力に表示されるのは、コンソールに送ったものだけです。ブラウザのコンソールのように最後の行の値は表示されないので、console.log で囲んでください。表示は Node.js のスタイルに従います。配列とオブジェクトは展開され、その中の文字列は引用符付きになり、プレースホルダー %s と %d は後ろの引数で置き換えられます。

console.log([1, 2, 3].map((n) => n * n));
console.log('%s is %d years old', 'Ada', 36);
console.log({ name: 'Ada', tags: ['a', 'b'] });
const data = await fetch('https://example.com/').then((r) => r.status);
console.log(data);

最初の 3 行は、[ 1, 4, 9 ]、Ada is 36 years old、{ name: "Ada", tags: [ "a", "b" ] } と出力します。最後の 2 行はネットワーク接続が必要で、リクエストの HTTP ステータスを出力します。制限時間は 5 秒、10 秒、30 秒、60 秒から設定できます。時間に達すると実行は終了し、メッセージで知らせます。

よくある質問

npm パッケージを import できますか?

import 文には対応していません。ネットワーク接続があれば、await import('https://esm.sh/package-name') のように ESM パッケージを動的に読み込めます。

無限ループを書いたらどうなりますか?

「停止」をクリックしてすぐ終了するか、設定した時間上限で自動停止します。実行ごとに新しいワーカーを使うため、ページには影響しません。

コードはアップロードされますか?

いいえ。ブラウザ内だけで実行されます。ネットワーク要求が発生するのは、コード自身が行った場合だけです。

TypeScript に対応していますか?

現在は JavaScript だけです。先に TypeScript の型注釈を削除してください。

プライバシー

このツールはすべてブラウザ内で動作します。ファイルやテキストはお使いの端末上で処理され、当サイトのサーバーにアップロードされることはありません。

関連ツール