You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

JavaScript语法错误:unexpected token ')' 问题求助

解决你的JavaScript语法错误及逻辑问题

嘿,很高兴看到你开始动手写JavaScript项目啦!咱们一步步来搞定这个问题:

问题根源分析

你遇到的unexpected token ')'语法错误,主要来自两个细节问题:

  • 多余的分号:最后一个else块的闭合大括号后面,你多写了一个分号};,这会让JS解析器误以为代码已经结束,导致后面的)无法被正确识别。
  • 重复的条件判断:最后一个else if的条件写成了guess > secretNumber,这和前面的分支完全重复,不仅逻辑上永远不会被执行,也间接干扰了语法解析的流程。

修正后的完整代码

const secretNumber = Math.trunc(Math.random() * 20) + 1; 
let score = 20; 
// 小提示:正常猜数字游戏初始不会显示秘密数字,你可以注释掉下面这行,猜对后再显示~
document.querySelector('.number').textContent = secretNumber; 

document.querySelector('.check').addEventListener('click', function() { 
  const guess = Number(document.querySelector('.guess').value); 
  console.log(guess, typeof guess); 

  if (!guess) { 
    document.querySelector('.message').textContent = 'No Number!'; 
  } else if (guess === secretNumber) { 
    document.querySelector('.message').textContent = 'Correct Number!'; 
  } else if (guess > secretNumber) { 
    if (score > 1) { 
      document.querySelector('.message').textContent = 'Too High!'; 
      score--; 
      document.querySelector('.score').textContent = score; 
    } else { 
      document.querySelector('.message').textContent = 'You lost the game!'; 
      document.querySelector('.score').textContent = 0; 
    } 
  } else if (guess < secretNumber) { // 修正为猜小了的条件
    if (score > 1) { 
      document.querySelector('.message').textContent = 'Too low!'; 
      score--; 
      document.querySelector('.score').textContent = score; 
    } else { 
      document.querySelector('.message').textContent = 'You lost the game!'; 
      document.querySelector('.score').textContent = 0; 
    } // 去掉了多余的分号
  }
});

额外小建议

以后遇到类似语法错误,可以先重点检查嵌套结构的括号、分号配对情况,很多时候问题都出在这些容易忽略的细节上。继续加油呀!

内容的提问来源于stack exchange,提问作者Jabri Juhinin

火山引擎 最新活动