我是JavaScript的初学者,我目前正在完成一项任务,我需要创建一个游戏,您需要使用JavaScript点击左侧的额外面孔。我一直得到“Uncaught SyntaxError:无效或意外的令牌”任何帮助将不胜感激!这是我的代码:
<html>
<head>
<style>
img {
position: absolute;
}
div {
position: absolute;
width: 500px;
height: 500px;
}
#rightSide {
left: 500px;
border-left: 1px solid black;
}
</style>
</head>
<body onload = "generateFaces()">
<h1>Matching Game</h1>
<p>Click on the extra smiling face on the left.</p>
<div id="leftSide"></div>
<div id="rightSide"></div>
<script>
var numberOfFaces = 5;
var count = 0;
var theLeftSide = document.getElementById("leftSide");
var theRightSide = document.getElementById("rightSide");
var theBody = document.getElementsByTagName("body")[0];
function generateFaces() {
while (count < numberOfFaces) {
newImage = document.createElement("img");
newImage.src = "smile.png";
newImage.style.top = Math.random() * 400;
newImage.style.left = Math.random() * 400;
leftSide.appendChild(newImage);
count++;
}
leftSideImages = leftSide.cloneNode(true);
leftSideImages.removeChild(leftSideImages.lastChild);
rightSide.appendChild(leftSideImages);
}
theLeftSide.lastChild.onclick = function nextLevel(event) {
removeAllFaces();
event.stopPropagation();
numberOfFaces += 5;
generateFaces();
}
theBody.onclick = function gameOver() {
alert("Game Over!");
theBody.onclick = null;
theLeftSide.lastChild.onclick = null;
}
function removeAllFaces(argument){
while (theLeftSide.firstChild){
theLeftSide.removeChild(theLeftSide.firstChild);
}
while (theRightSide.firstChild){
theRightSide.removeChild(theRightSide.firstChild);
}
}
</script>
</body>
</html>
答案 0 :(得分:2)
问题是您使用的某些分号不是标准分号。如果您测试使用的分号的字符代码:
console.log(';'.charCodeAt(0))
您会发现他们的字符代码为894,这意味着他们不是标准类型的分号,其字符代码为59.不知何故,您已经引入了程式化的非分号标准分号到您的代码中。如果你看下面的图片,这一点会更清楚:
注意底部分号与顶部分号的区别。使用这些程式化的分号会导致您获得的无效令牌错误。
浏览您的代码并将非标准分号替换为标准分号。