You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS代码出现ReferenceError: prompt未定义问题求助

解决「ReferenceError: prompt is not defined」错误

错误原因

prompt()是浏览器专属的全局API,仅能在浏览器的JavaScript运行环境中使用。如果在Node.js环境(比如终端、VS Code内置终端)里运行这段代码,就会触发该错误——因为Node.js并未内置prompt方法。


解决方案分场景处理

场景1:在浏览器中运行代码

直接将代码嵌入HTML文件,通过浏览器打开即可正常执行:

<!DOCTYPE html>
<html>
<body>
  <script>
    const num1 = parseInt(prompt('请输入第一个数字:'));
    const num2 = parseInt(prompt('请输入第二个数字:'));
    const sum = num1 + num2;
    console.log(`${num1} 和 ${num2} 的和是 ${sum}`);
    // 也可以用弹窗直接展示结果
    alert(`${num1} 和 ${num2} 的和是 ${sum}`);
  </script>
</body>
</html>

场景2:在Node.js环境中运行代码

需要借助Node.js的输入处理方案,以下两种方法可选:

方法1:使用Node.js内置readline模块(无需额外安装)

const readline = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});

readline.question('请输入第一个数字:', (num1Input) => {
  readline.question('请输入第二个数字:', (num2Input) => {
    const num1 = parseInt(num1Input);
    const num2 = parseInt(num2Input);
    const sum = num1 + num2;
    console.log(`${num1} 和 ${num2} 的和是 ${sum}`);
    readline.close();
  });
});

运行方式:保存为sum.js,终端执行node sum.js。

方法2:使用prompt-sync包(同步输入,写法更贴近浏览器prompt)

  1. 先安装依赖:npm install prompt-sync
  2. 编写代码:
const prompt = require('prompt-sync')();

const num1 = parseInt(prompt('请输入第一个数字:'));
const num2 = parseInt(prompt('请输入第二个数字:'));
const sum = num1 + num2;
console.log(`${num1} 和 ${num2} 的和是 ${sum}`);

运行方式:终端执行node sum.js。


内容的提问来源于stack exchange,提问作者Albert R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 01:20:42