JS インタープリター
実行ごとに新しいサンドボックスで短い JavaScript コードを試せます。式またはスクリプトを選び、出力を確認し、いつでも停止できます。
使い方
使い方
- コードを入力するか例を読み込みます。
- 値を求める場合は式、文と任意の return にはスクリプトを選びます。
- 実行して出力やエラーを確認し、停止ボタンで実行を終了します。
2 つの実行モード
式は値を返します。スクリプトは非同期関数の本体として実行されます。console.log、console.info、console.warn、console.error で出力し、return で最終値を返します。両モードで await を使えます。構文の対応範囲はブラウザーによります。
隔離と制限
コードは sandbox="allow-scripts" の iframe 内の専用 worker だけで実行され、同一オリジン権限はありません。CSP がネットワーク接続と外部スクリプトを禁止します。ページ DOM、サイトの保存領域、画面遷移、ポップアップ、ダウンロードにはアクセスできません。実行は最大 2 秒で手動停止も可能です。入力は 50,000 文字、出力は 100 行 / 32,000 文字までです。
毎回新しいローカル実行
コードと結果は送信・保存されません。変数は次の実行に引き継がれません。戻り値や promise が完了するとタイマーも破棄します。パッケージ、外部 import、HTML 描画、ファイルシステム、Node.js API は提供しません。メモリを厳密には制限できないため、小さいコードを使ってください。
よくある質問
あわせて知りたいこと
ページへのアクセスや API 通信はできますか?
できません。worker に document や window はなく、CSP が通信と import を禁止します。親ページの保存領域も読めません。
無限ループを止めるには?
停止を選びます。worker のイベントループが止まっていても、iframe の独立タイマーが 2 秒後に worker を終了します。
REPL の状態は保持されますか?
毎回初期状態です。依存する文は同じスクリプトに入れ、最終結果には return を使います。
サンドボックスの準備に失敗したら?
実行を拒否します。親ページでコードを実行する代替処理はありません。