Dea*_*ltz 1 javascript if-statement
请问以下代码为什么会返回错误?
numberOne>numberTwo ? return true : false;
^^^^^^
SyntaxError: Unexpected token return
at createScript (vm.js:53:10)
at Object.runInThisContext (vm.js:95:10)
at Module._compile (module.js:543:28)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.runMain (module.js:605:10)
at run (bootstrap_node.js:427:7)
at startup (bootstrap_node.js:151:9)``
Run Code Online (Sandbox Code Playgroud)
我已经完成了我能想到的一切,并且我正在尝试使用这种格式if/else而不是正常格式,if () {}这样我就可以掌握语言的所有方面.
function isGreaterThan(numberOne, numberTwo) {
numberOne>numberTwo ? return true : return false;
}
Run Code Online (Sandbox Code Playgroud)
感谢您提供任何帮助!
你误解了三元运算符.事实上,你根本就不必在那里使用它
return numberOne>numberTwo;
Run Code Online (Sandbox Code Playgroud)
如果您仍然想知道您的三元运算符有什么问题,那么您将如何通过三元运算符获得它.它会在这里做同样的技巧,但更多的字符(即,不需要在这里使用它,但无论如何这里是一个例子)
return (numberOne > numberTwo ? true : false);
Run Code Online (Sandbox Code Playgroud)
如果我一直不清楚- BOTH那些return语句会做EXACTLY同样的事情.
对主题进行了扩展 - 为什么它不能像我使用它那样工作?
三元运算符本身应该返回结果(不要与函数的返回混淆).它通过计算第一个表达式(?之前和之后:)或第二个表达式(后面的表达式)来返回结果:.为了使三元运算符返回任何内容,两个表达式都必须求值.将return语句作为三元运算符中的表达式之一是没有意义的,因为return关键字不会评估任何内容.即,写下以下内容毫无意义:
var lalala = return someVar;
Run Code Online (Sandbox Code Playgroud)
这就是错误试图告诉你的,这是同一起源的错误.也就是说,它没有预期return,但也许someVar + anotherVar,1 * 2,great > small或其他任何可评估.
推荐阅读: 你如何使用?:JavaScript中的(条件)运算符?
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |