未捕获的SyntaxError:无效或意外的令牌,匹配游戏分配

时间:2017-08-05 16:27:10

标签: javascript syntax-error

我是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>

1 个答案:

答案 0 :(得分:2)

问题是您使用的某些分号不是标准分号。如果您测试使用的分号的字符代码:

console.log(';'.charCodeAt(0))

您会发现他们的字符代码为894,这意味着他们不是标准类型的分号,其字符代码为59.不知何故,您已经引入了程式化的非分号标准分号到您的代码中。如果你看下面的图片,这一点会更清楚:

Bad ";" semicolon Picture

注意底部分号与顶部分号的区别。使用这些程式化的分号会导致您获得的无效令牌错误。

浏览您的代码并将非标准分号替换为标准分号。