Javascript:“if”条件中的三元运算符?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (134)

我发现了这个Javacript代码,我无法理解在if条件下有一个三元运算符意味着什么。

var s = 10, r = 0, c = 1, h = 1, o = 1;

if (s > r ? (c = 5, h = 2) : h = 1, o >= h)
{
  alert(1);
}

o >= h返回的“如果”条件评估的结果?那么在“if”条件下使用逗号怎么样?

提问于
用户回答回答于

这真的只是一种语法上的捷径。可以将其扩展为两个if语句:

var condition;
if (s > r) {
  c = 5;
  condition = (h = 2); // another short-cut; it's essentially (h = 2, condition = true)
}
else {
  h = 1;
  condition = (o >= h);
}

if (condition) {
  alert(1);
}
用户回答回答于

当你运行时,这段代码不会给出错误......基本上...做的是运行它找到的三元运算(c = 5,h = 2),这不是写入if语句的条件.. 因此条件不会满足,它不会警觉(1);

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励