我有一个带有javascript代码的简单html页面。
的HTML
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Sink The Battle Ship</title>
</head>
<body>
<h1>Battleship</h1>
<script src="battleship.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
的JavaScript
var location = Math.floor(Math.random() * 5);
var numberOfGuesses = 0;
var isSunk = false;
var guess;
var guess = prompt("Ready, aim, fire! (enter a number from 0-6):");
var guessedLocation = parseInt(guess);
console.log(guess);
console.log(guessedLocation);
Run Code Online (Sandbox Code Playgroud)
每次我在浏览器中启动html时,都会显示提示,并且当我输入一个值时,会给我一个错误“ ERR_FILE_NOT_FOUND”。看来浏览器正在尝试使用我输入的值重定向到页面。知道这里出了什么问题吗?我尝试在不同的浏览器中打开html,但仍然没有运气。
问题是您正在重新定义一个名为 location 的全局变量。
当你像这样声明一个变量时
var location = 1;
Run Code Online (Sandbox Code Playgroud)
和这样做是一样的
window.location = 1;
Run Code Online (Sandbox Code Playgroud)
位置是一个浏览器变量,用于定义用户所在的页面(位置)。
你可以做两件事,
1 - 将变量位置重命名为:$location, location_2, my_location
var myLocation = Math.floor(Math.random() * 5);
Run Code Online (Sandbox Code Playgroud)
2 - 创建本地范围
(function(){
var location = Math.floor(Math.random() * 5);
var numberOfGuesses = 0;
var isSunk = false;
var guess = prompt("Ready, aim, fire! (enter a number from 0-6):");
var guessedLocation = parseInt(guess);
console.log(guess);
console.log(guessedLocation);
})()
Run Code Online (Sandbox Code Playgroud)
另外,停止重新声明变量猜测,每个变量名只使用一个“var”
var location = 1;
Run Code Online (Sandbox Code Playgroud)
window.location = 1;
Run Code Online (Sandbox Code Playgroud)