问题:
JS中
a > b ? return true : return false;
无法通过编译
return a > b ? a : b;
可以运行
原因:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Conditional_Operator
条件(三元)运算符是 JavaScript 仅有的使用三个操作数的运算符。一个条件后面会跟一个问号(?),如果条件为 truthy ,则问号后面的表达式 A 将会执行;表达式 A 后面跟着一个冒号(:),如果条件为 falsy ,则冒号后面的表达式 B 将会执行。本运算符经常作为 if 语句的简捷形式来使用。
问号后面跟着的应该是表达式,a
b
是表达式 而 return a
不是一个表达式
表达式是一组代码的集合,它返回一个值
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Expressions_and_Operators#%E8%A1%A8%E8%BE%BE%E5%BC%8F