Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 三元?:操作员抛出一个错误_Javascript_If Statement - Fatal编程技术网

Javascript 三元?:操作员抛出一个错误

Javascript 三元?:操作员抛出一个错误,javascript,if-statement,Javascript,If Statement,我可以问一下为什么下面的代码返回错误吗 错误: 我已经做了我能想到的一切,我正试图使用这种格式的if/else而不是普通的if(){},这样我就可以掌握语言的各个方面 代码: 函数大于(numberOne,numberTwo){ numberOne>numberTwo?返回true:返回false; } 谢谢你能提供的任何帮助 您误解了三元运算符。事实上,你根本不需要在那里使用它,只要 return numberOne>numberTwo; 如果您仍然想知道您的三元运算符有什么问题,下

我可以问一下为什么下面的代码返回错误吗

错误: 我已经做了我能想到的一切,我正试图使用这种格式的
if/else
而不是普通的
if(){}
,这样我就可以掌握语言的各个方面

代码:
函数大于(numberOne,numberTwo){
numberOne>numberTwo?返回true:返回false;
}

谢谢你能提供的任何帮助

您误解了三元运算符。事实上,你根本不需要在那里使用它,只要

return numberOne>numberTwo;
如果您仍然想知道您的三元运算符有什么问题,下面是使用三元运算符的方法。在这里,它将使用相同的技巧,但使用更多的字符(即,这里不需要使用它,但这里有一个示例)


如果我不清楚-这些返回语句中的两个都将执行完全相同的操作


扩展一下主题-为什么它不能像我使用它的方式工作呢

三元运算符本身应该返回结果(不要与函数的返回混淆)。它通过计算第一个表达式(在
之后和
之前)或第二个表达式(在
之后)返回结果。为了让三元运算符返回任何内容,两个表达式的计算结果都必须为任何内容。将
return
语句作为三元运算符内的表达式之一是没有意义的,因为
return
关键字的计算结果没有任何意义。也就是说,写下以下内容是毫无意义的:

var lalala = return someVar;
这就是错误试图告诉你的,它是同一来源的错误。也就是说,它期望的不是
返回
,而是
某个变量+另一个变量
1*2
great>small
或任何其他可以评估的内容


推荐阅读:

您误解了三元运算符。事实上,你根本不需要在那里使用它,只要

return numberOne>numberTwo;
如果您仍然想知道您的三元运算符有什么问题,下面是使用三元运算符的方法。在这里,它将使用相同的技巧,但使用更多的字符(即,这里不需要使用它,但这里有一个示例)


如果我不清楚-这些返回语句中的两个都将执行完全相同的操作


扩展一下主题-为什么它不能像我使用它的方式工作呢

三元运算符本身应该返回结果(不要与函数的返回混淆)。它通过计算第一个表达式(在
之后和
之前)或第二个表达式(在
之后)返回结果。为了让三元运算符返回任何内容,两个表达式的计算结果都必须为任何内容。将
return
语句作为三元运算符内的表达式之一是没有意义的,因为
return
关键字的计算结果没有任何意义。也就是说,写下以下内容是毫无意义的:

var lalala = return someVar;
这就是错误试图告诉你的,它是同一来源的错误。也就是说,它期望的不是
返回
,而是
某个变量+另一个变量
1*2
great>small
或任何其他可以评估的内容


推荐阅读:

您要找的是一个普通的
旧的
if
语句:

if(numberOne > numberTwo) {
  return true;
} else {
  return false;
}
如果
语句分支语句,则会导致一个
。而
return
是一条语句。三元表达式,
true
false
是表达式,
return
不是。因此,只需将
return
移动到三元代码前面:

return numberOne > numberTwo ? true : false;
这基本上是:

return numberOne > numberTwo;

您要查找的是一个普通的
if
语句:

if(numberOne > numberTwo) {
  return true;
} else {
  return false;
}
如果
语句分支语句,则会导致一个
。而
return
是一条语句。三元表达式,
true
false
是表达式,
return
不是。因此,只需将
return
移动到三元代码前面:

return numberOne > numberTwo ? true : false;
这基本上是:

return numberOne > numberTwo;

所以“?:”操作符返回它自己的东西,所以你不应该写“返回你自己”这样做 -函数大于(numberOne,numberTwo){

返回numberOne>numberTwo?真:假


}

所以“?:”操作符返回了它自己的东西,所以你不应该写“返回你自己”这样做 -函数大于(numberOne,numberTwo){

返回numberOne>numberTwo?真:假


}

我没有试图返回该值,我只是试图返回是否大于布尔值value@Death这正是我的代码所做的
numberOne>numberTwo
返回布尔值。这解决了问题,但没有解决在三元表达式中使用
return
时出错的问题。答案是
return
是一个语句而不是一个表达式(它不会计算任何值,例如
console.log(return'foo');
是没有意义的,因为
return'foo'
不会计算任何可以记录的值),所以它不能用于需要表达式的地方。@Paulpro这是一个合理的注释,我要补充的是,我并没有试图返回值,我只是试图返回是否大于布尔值value@Death这正是我的代码所做的
numberOne>numberTwo
返回布尔值。这解决了问题,但没有解决在三元表达式中使用
return
时出错的问题。答案是
return
是一个语句而不是一个表达式(它不会计算任何值,例如
console.log(return'foo');
没有意义,因为
return'foo'
不会计算任何值