使い方
- 左側にコードを書き、または例を編集します。
- 「実行」をクリックするか Ctrl+Enter(Mac は ⌘+Enter)を押します。右側にコンソール出力が表示されます。
- 長く実行される場合は「停止」をクリックするか、右下で実行時間の上限を設定します。
オプションの説明
- 実行環境
- ブラウザ内の 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 の型注釈を削除してください。
プライバシー
このツールはすべてブラウザ内で動作します。ファイルやテキストはお使いの端末上で処理され、当サイトのサーバーにアップロードされることはありません。