You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code中粘贴的JavaScript石头剪刀布代码失效且部分变暗问题

石头剪刀布程序错误修复

你的代码存在几处语法和拼写错误,导致程序无法运行,其中VSCode中代码变暗的核心原因是**elseif的语法错误**——JS里正确写法是else if(必须用空格分隔),解析器无法识别连写的elseif,因此后续代码被标记为无效。

以下是具体错误和修复方案:

  • DOM对象拼写错误:两处documment改为document,否则无法获取页面元素
  • 随机数生成错误:Math.random改为Math.random(),必须调用函数才能生成0-1之间的随机数
  • 条件判断语法错误:所有elseif改为else if,符合JS标准语法规范
  • 模板字符串使用错误:单引号包裹的模板字符串无效,改用反引号直接包裹内容,比如Player: ${player}
  • 可选优化:给switch的case 3添加break语句,保持语法完整性

修正后的完整代码:

const playertext = document.querySelector('#playertext')
const computertext = document.querySelector('#computertext')
const resultext = document.querySelector('#resultext')
const choiceBtn = document.querySelectorAll('#choiceBtn')
let player;
let computer;
let result;

choiceBtn.forEach(button => button.addEventListener('click', () => {
  player = button.textContent
  computeresult()
  playertext.textContent = `Player: ${player}`
  computertext.textContent = `Computer: ${computer}`
  resultext.textContent = checkWinner()
}))

function computeresult() {
  const randnumber = Math.floor(Math.random() * 3) + 1;
  switch (randnumber) {
    case 1:
      computer = 'Rock'
      break;
    case 2:
      computer = 'Paper'
      break;
    case 3:
      computer = 'Scissor'
      break;
  }
}

function checkWinner() {
  if (player === computer) {
    return 'Draw!!'
  }
  else if(computer == 'Rock'){
    return (player == 'Paper') ? 'You win' : 'You lose'
  }
  else if(computer == 'Paper'){
    return (player == 'Scissor') ? 'You win' : 'You lose'
  }
  else if(computer == 'Scissor'){
    return (player == 'Rock') ? 'You win' : 'You lose'
  }
}

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 13:15:18