Do we have a simpler ternary operator in JavaScript?
本问题已经有最佳答案,请猛点这里访问。
我刚刚在PHP中看到了这种语法:
1 2 3 | // Fetches the value of $_GET['user'] and returns 'nobody' // if it does not exist. $username = $_GET['user'] ?? 'nobody'; |
为什么我们在javascript中没有相同的内容呢?
我厌倦了做:
1 | var name = obj['name'] ? obj['name'] : 'GOD'; |
空合并运算符是最近添加到PHP中的。它是在php 7中引入的(于2015年12月发布),这是该特性首次被提出10多年之后。
在javascript中,逻辑或运算符可以用于此目的达数年之久(因为创建了javascript?!!)
如文件所述:
Logical OR (
|| )
expr1 || expr2 Returns
expr1 if it can be converted totrue ; otherwise, returnsexpr2 .
Thus, when used with Boolean values,|| returnstrue if either operand istrue ; if both arefalse , returnsfalse .
而不是写作
1 | var name = obj['name'] ? obj['name'] : 'GOD'; |
您可以使用较短的:
1 | var name = obj['name'] || 'GOD'; |
可以多次使用
1 | var name = obj['name'] || obj['desc'] || 'GOD'; |
在javascript中,您可以执行以下操作:
1 | var name = obj['name'] ||"GOD" |
如果第一个值为假(