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
相关产品推荐
相关产品推荐

