Javascript三进制操作奇怪的bug



我有这个操作,它使我的模块崩溃

blop: function(variation) {
    variation>0 ? return 'Positive' : return 'Negative';
}

怎么了

语法无效。

条件操作符是一个操作符;与所有操作符一样,它的操作数必须是表达式。return是一个语句,而不是表达式。

必须返回整个表达式:

return a ? b : c;

表达式的问题是,它不是一个表达式;这是一个语法错误。不能将return放到表达式的中间:

return variation > 0 ? 'Positive' : 'Negative';

return语句以关键字return开始,并且(除非我忘记了一些模糊的东西)关键字可以出现的唯一地方:语句的开头。在return之后是一个表达式,因此在上面的示例中,该表达式是选择字符串的? :操作。

在三元操作符中使用return可能会产生语法错误。试试这个:

return (variation > 0) ? "Positive" : "Negative";

最新更新