求助:JavaScript代码运行输出[Function: getComputerChoice]而非预期结果
问题分析与修复方案
你的代码存在两个核心问题,同时还有一个调用时的注意事项:
1. 随机数结果未保存
Math.floor(Math.random() * 3);这条语句生成了0-2的随机整数,但没有把结果赋值给任何变量,导致后续逻辑根本无法用到这个随机数。
2. switch判断目标错误
你在switch里写的是switch (getComputerChoice),这里的getComputerChoice是函数本身,不是生成的随机数,所以永远不会匹配到0/1/2的case。
3. 调用函数的注意事项
如果你的控制台打印代码是console.log(getComputerChoice)而不是console.log(getComputerChoice()),也会输出[Function: getComputerChoice]——因为前者是打印函数对象,后者才是调用函数并打印返回值。
修复后的代码
function getComputerChoice() { // 把随机数赋值给变量 const randomNum = Math.floor(Math.random() * 3); // switch判断这个随机数变量 switch (randomNum) { case 0: return 'rock'; case 1: return 'paper'; case 2: return 'scissors'; } } // 调用函数时要加括号 console.log(getComputerChoice());
额外说明
- return语句会直接终止函数,所以case里的
break是多余的,可以删掉 - 给随机数变量命名能让代码可读性更强
内容的提问来源于stack exchange,提问作者drobot
相关产品推荐
相关产品推荐

