JS 解释器
每次运行都用新的沙箱尝试短 JavaScript 代码。选择表达式或脚本模式,查看 console 输出,随时停止执行。
使用步骤
如何使用
- 输入代码或加载示例。
- 要计算值请选择表达式;要运行语句和可选 return 请选择脚本。
- 运行并查看输出或错误;用停止按钮结束正在运行的代码。
两种执行模式
表达式返回其值。脚本在异步函数体中执行:console.log、console.info、console.warn 和 console.error 产生输出;用 return 返回最终值。两种模式都支持 await,语法支持取决于浏览器。
隔离与限制
代码仅在 sandbox="allow-scripts" 且无同源权限的 iframe 内创建的独立 worker 中运行。CSP 禁止网络连接和外部脚本。代码不能访问页面 DOM、本站存储、导航、弹窗或下载。每次最多 2 秒,可手动停止;输入最多 50,000 字符,输出最多 100 行 / 32,000 字符。
全新的本地运行
不上传或保存代码和结果;变量不会跨运行保留。返回值或 promise 完成后丢弃计时器。不提供软件包、远程导入、HTML 渲染、文件系统或 Node.js API。无法严格限制浏览器内存使用,请使用小段代码。
常见问题
你可能还想知道
能访问页面或调用 API 吗?
不能。worker 没有 document 或 window,沙箱 CSP 禁止网络和导入,也不能读取主页面存储。
如何停止无限循环?
选择停止。iframe 中独立的计时器也会在 2 秒后终止 worker,即使代码阻塞其事件循环。
会保留 REPL 会话吗?
不会。每次从头开始;有依赖的语句应放在同一脚本中,用显式 return 返回最终结果。
沙箱初始化失败会怎样?
拒绝执行,绝不会回退到主页面运行用户代码。