我是javascript的新手,我正在根据教科书写一个非常简单的javascript,下面是代码。
var location1 = 3;
var location2 = 4;
var location3 = 5;
var guess;
var hits = 0;
var guesses = 0;
var isSunk = false;
while (isSunk == false) {
guess = prompt("Ready, aim, fire! (enter a number from 0-6):") // prompt instead of promt
if (guess < 0 || guess > 6) {
alert("Please enter a valid cell number!");
} else {
guesses = guesses + 1;
if (guess == location1 || guess == location2 || guess == location3) {
alert("HIT!");
hits = hits + 1;
if (hits == 3) {
isSunk = true;
alert("You sank my battleship!");
}
} else {
alert("MISS");
}
}
}
var stats = "You took " + guesses + " guesses to sink the battleship, " +
"which means your shooting accuracy was " + (3 / guesses);
alert(stats);然后,我安装了nodejs,并尝试通过多种方式运行此文件。但它对我说了很多错误。第一个错误是,当我直接运行它时
Object expected
800A138F
microsoft jscript runtime error第二个错误是,当我使用命令node battleship.js运行它时,错误如下

正如你在图片中看到的,它告诉我没有定义promt。我的问题是,我运行另一个代码没有问题。这意味着nodejs没有问题。而且,我在网上运行我的代码没有问题,这意味着我的代码没有问题。
那么,我该如何解决这个问题呢?你能帮我弄一下这个吗?非常感谢您的宝贵时间。
发布于 2021-05-31 22:30:04
Node.js不同于在浏览器中运行javascript,它没有window对象,而window对象有像prompt()或alert()这样的东西。在浏览器中,它们以弹出窗口的形式显示。
您可以使用console.log()而不是alert(),对于prompt(),您可以查看下面的https://nodejs.dev/learn/accept-input-from-the-command-line-in-nodejs
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
})
readline.question(`What's your name?`, name => {
console.log(`Hi ${name}!`)
readline.close()
})https://stackoverflow.com/questions/67775432
复制相似问题