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)
- 先安装依赖:
npm install prompt-sync - 编写代码:
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
相关产品推荐
相关产品推荐

