使用Visual Studio 2019时如何在浏览器而非控制台运行JavaScript程序
问题原因
prompt()是浏览器端专属的Web API,仅在浏览器的JavaScript运行环境中作为全局方法存在,Node.js属于服务端JavaScript运行环境,默认没有内置该方法,所以直接用Node执行代码时就会抛出prompt is not defined的错误,你的猜测是正确的,确实是因为使用Node.js在控制台运行代码导致的报错。
修复方案
方案1:在浏览器环境运行代码(更适合JavaScript入门学习)
如果是跟着前端入门教程学习,推荐优先用该方案,教程中涉及的各类浏览器专属API都可以直接运行,无需额外适配。
操作步骤如下:
- 新建一个后缀为
.html的文件,把你的JS代码写入<script>标签内,参考示例:
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>JS调试测试</title> </head> <body> <script> 'use strict'; var msg = 'You entered:'; let promptInput = prompt("What would you like to enter"); console.log(msg); console.log(promptInput); </script> </body> </html>
- 用任意浏览器打开该html文件,页面会自动弹出输入框,按F12打开开发者工具的「控制台」面板即可看到打印的输出内容。
方案2:继续在Node.js控制台环境运行
如果需要保留在控制台运行的模式,可以用Node.js内置的readline模块实现等效的输入功能,替换原有代码即可:
'use strict'; const readline = require('readline').createInterface({ input: process.stdin, output: process.stdout }); const msg = 'You entered:'; readline.question("What would you like to enter\n", promptInput => { console.log(msg); console.log(promptInput); readline.close(); });
用Node执行上述代码后,就可以直接在控制台输入内容,回车后即可看到对应的输出结果。
内容的提问来源于stack exchange,提问作者rms2256
相关产品推荐
相关产品推荐

