这之间是否存在重大差异:
var status = (age >= 18) ? "adult" : "minor";
这个?
var status;
if (age >= 18)
status = "adult";
else
status = "minor";
答案 0 :(得分:2)
就性能而言,可能会有所不同。与if()
相比,某些浏览器使用? :
时速度较慢或使用速度较慢。使用当前浏览器预编译JavaScript代码的方式,这可能不再是问题。如果你计划做与旧浏览器兼容的时间关键的东西,那么这可能需要考虑。
然而,就代码的逻辑而言,它是相同的。
答案 1 :(得分:1)
要添加我的两美分,这个(?:)被称为三元运算符。维基百科有一篇关于这个主题的好文章。几乎每种高级语言都支持。