【发布时间】:2021-11-28 02:53:38
【问题描述】:
我正在创建一个石头剪刀布游戏来测试我对函数的了解。 我编写了这段代码来查看用户是否输入了有效的石头、纸或剪刀:
const getUserChoice = userInput => {
userInput = userInput.toLowerCase();
if(userInput === 'rock'){
return userInput;
} else if(userInput === 'paper') {
return userInput;
} else if(userInput === 'scissor'){
return userInput;
} else {
console.log('Invalid Option');
}
};
当我通过这样的console.log 测试最后一个else 语句时:
console.log(getUserChoice('water'));
它打印出 rock 而不是打印“Invalid Option”。
当我检查解决方案时,我看到了这个:
if (userInput === 'rock' || userInput === 'paper' || ... ) {
return userInput;
} else {
console.log('Error!');
}
那么使用 else-if 来完成这个任务和使用 || 操作符有什么区别呢?
编辑: 我犯了一个错误,使用 = 而不是 ===,所以它得到了修复,但我仍然想知道是否有任何区别,以及对于特定用例哪种更有效。
【问题讨论】:
-
当我在浏览器的开发工具中运行您的代码示例时,它会将
'Invalid Option'打印到控制台,而不是'rock'。您确定您问题中的代码与产生该意外结果的代码相同吗? -
@Mark Hanna,在其中一个答案指出我使用 = 而不是 === 之后,我编辑了我的代码
-
啊,这就解释了:)
标签: javascript if-statement logical-operators