当前位置: 首页 > 知识库问答 >
问题:

如果出现其他情况,则返回内部并使用胖箭头

柳羽
2023-03-14

当我尝试在胖箭头函数中返回用户输入条件运算符时出错。温馨的建议。

使用ES5我的代码工作正常;

userInput = userInput.toLowerCase();
if (userInput === 'rock' || userInput === 'paper' || userInput === 'scissors' ) {
  return userInput;
} else {
  console.log('Error!');
}
console.log(getUserChoice('Paper')); // console prints 'paper'
console.log(getUserChoice('fork')); // console prints 'Error!' and `undefined`

但是当我使用ES6胖箭头和条件运算符时,出现错误。注意:我想在if… else语句的第一个条件评估时立即返回userInput。

const getUserChoice = userInput => {
  userInput = userInput.toLowerCase();
  (userInput === 'rock' || userInput === 'paper' || userInput === 'scissors')? return userInput : console.log('Error');
};

console.log(getUserChoice('Paper'));
console.log(getUserChoice('fork'));

出现以下错误:

  (userInput === 'rock' || userInput === 'paper' || userInput === 'scissors')? return userInput : console.log('Error');
                                                                               ^^^^^^
SyntaxError: Unexpected token return

共有3个答案

邓焱
2023-03-14

这里的关键是要认识到< code >?:是一个运算符。它就像任何其他运算符(如< code> 和< code>*)一样进行计算,以创建新值。记住这一点,您就可以理解为什么在您的原始版本中放置< code>return没有意义了。< code>return是一个命令(或者更准确地说是一个语句),而不是一个值。

吴修洁
2023-03-14

有两种方法可以在JavaScript中创建不同的分支:

1) 用于分支语句或语句块的 if() 语句

 if(cond) {
   statement1;
   statement2;
 } else statement 3

2) 将表达式分支的三元运算符。

 cond ? expression1 : expression2

back是一个语句,语句不能在表达式中。您要么返回整个三元,要么使用if

三元组很久以前就被引入了,这与箭头功能无关。

尚嘉庆
2023-03-14

您需要在条件语句的开头指定 return,如下所示:

return (userInput === 'rock' || userInput === 'paper' || userInput === 'scissors')? userInput : console.log('Error'); 
 类似资料:
  • 但我想把它胖箭头化: 除了我得到一个错误,因为在胖箭头后面的意味着返回未定义的代码块(除非您显式地某些东西)。至少我一开始是这么想的。但我认为现在被绑定到胖箭头函数,现在是。 所以我试着这样做: 所以我想我有两个问题我很好奇。首先,从一个简单的语句胖箭头函数返回对象的惯用方法是什么?其次,如何返回对周围上下文的对象有引用的对象?

  • 问题内容: 我有一个循环,该循环调用异步完成的方法。该循环可以多次调用该方法。在这个循环之后,我还有另一个循环,只有当所有异步工作都完成后才需要执行。所以这说明了我想要什么: 我对诺言不太熟悉,所以有人可以帮助我实现诺言吗? 这是我的举止: 也许我必须做这样的事情: 但是我不确定语法。 问题答案: 您可以为此使用(spec,MDN):它接受一堆单独的诺言,并给您返回一个诺言,当您给它的所有诺言都得

  • 问题内容: 我已经阅读了很多有关代码重构和避免if else语句的主题。实际上,我有一堂课,我在使用很多if-else条件。 更多详细信息:我正在使用拉式解析器,并且在我的肥皂响应的每一行上,我都会检查是否有我感兴趣的标签,如果没有,请检查其他标签,等等: 现在,我想使用somethimg,而不是其他条件,但是我不知道是什么。 您能给我一个例子还是一个很好的教程页面? 谢谢。 问题答案: 在这种特

  • 我有两张桌子: Product\u表 Productbreak\u表 我的目标是只获取不在productbreak_table的和日期之间的产品 结果应该是:

  • 试图在我的项目中实现Drools规则,并且我试图将许多转换为Drools规则,但我不确定如何在Drools中添加条件。我的场景是这样的: 我当前的drl文件内容是这样的: 现在我想要一个conditon,如果上面所有条件都失败了,就应该执行它。用口水可以做到这一点吗?如果上述所有条件都失败了,那么其他部分应该执行,我尝试搜索,发现当前drools不支持conditon。如果是这种情况,如何实现这种

  • 我得到了这个错误函数是无效的反应子。如果您返回一个组件而不是从render返回,可能会发生这种情况。或者你想调用这个函数而不是返回它 和 位置“/”处的匹配叶路由没有元素。这意味着默认情况下,它将呈现一个具有空值的,从而产生一个“空”页。 这一个 应用程序。js文件是 和Homepage.js