Javascript 我能';t在不显示错误的情况下更改输入字的大写字母。我用了小写()

Javascript 我能';t在不显示错误的情况下更改输入字的大写字母。我用了小写(),javascript,console.log,Javascript,Console.log,//这似乎不起作用。仅当我键入所有小写字母的单词时。const getUserChoice=(userInput)=>{ userInput=userInput.toLowerCase() 如果(userInput=='rock'| | userInput==='paper'| | userInput==='剪刀'){ 返回用户输入; }否则{ return'Error!';//更改为return } }; 在这一行中,您将创建函数参数的默认值,除非作用域中存在userInput,否则它将是u

//这似乎不起作用。仅当我键入所有小写字母的单词时。

const getUserChoice=(userInput)=>{
userInput=userInput.toLowerCase()
如果(userInput=='rock'| | userInput==='paper'| | userInput==='剪刀'){
返回用户输入;
}否则{
return'Error!';//更改为return
}
};
在这一行中,您将创建函数参数的默认值,除非作用域中存在
userInput
,否则它将是
undefined
。它不会操纵你传递的论点

例如,像这样的函数:

const getUserChoice = (userInput=userInput.toLowerCase()) => {
如果调用时没有参数,则会说“你好,陌生人”,如果调用时称为
hello(“Scrissors”)
,则会说“你好,剪刀”

调用函数时:
getUserChoice('Scissors')
默认参数将被您传递的内容覆盖,函数中的
userInput
“Scissors”

您需要在函数体内部进行转换:

const hello = (name="stranger") => console.log(`hello, ${name}`)
你可以试试看

const getUserChoice = (userInput) => {
   userInput=userInput.toLowerCase()
   /* now userInput is the lowercase version of the argument you pass */
}

从函数内部的参数声明中删除对小写的更改。虽然这段代码可以回答这个问题,但提供关于这段代码为什么和/或如何回答这个问题的附加上下文可以提高它的长期价值。@adiga,感谢您的指导。@Kasalwe无耻,但请了解我的答案。对于一个有经验的开发人员来说,问题和解决方案是显而易见的,但是我花了更长的时间来编写它,因为我花了时间来解释什么是错误的,为什么,什么是错误的假设,以及代码真正做了什么,以提供一个答案,不仅解释应该更改什么,而且还解释为什么。
const getUserChoice = (userInput) => {
   userInput=userInput.toLowerCase()
   /* now userInput is the lowercase version of the argument you pass */
}
const getUserChoice = (Input) => {
  let userInput = Input.toLowerCase();
  if (userInput==='rock' || userInput==='paper' || userInput==='scissors') {
    return userInput;
  } else {
    console.log('Error!');
  }
};
console.log(getUserChoice('Scissors'));