首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript:"if“条件中的三元运算符

Javascript:"if“条件中的三元运算符
EN

Stack Overflow用户
提问于 2015-12-24 00:57:57
回答 2查看 4.1K关注 0票数 3

我找到了这段Javacript代码,但我无法理解在if条件中包含一个三元运算符意味着什么。

代码语言:javascript
复制
var s = 10, r = 0, c = 1, h = 1, o = 1;

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

在"if“条件下,o >= h是否返回要计算的结果?在"if“条件下逗号的用法又如何呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-24 01:01:57

这实际上只是一个语法上的捷径。我们可以将其扩展为两个if语句:

代码语言:javascript
复制
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);
}

使用comma允许将两条语句转换为一条语句(因为a, b的计算结果始终为b,尽管ab子表达式都在进程中计算)。

票数 4
EN

Stack Overflow用户

发布于 2015-12-24 01:04:19

此代码不会给出错误,当你运行...基本上..。它所做的是运行三元运算,其中它找到(c=5,h=2),这不是写入if语句的条件。

因此,条件不会满足,也不会警示(1);

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34440410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档