Javascript三元运算符语法不理解[重复]
Posted
技术标签:
【中文标题】Javascript三元运算符语法不理解[重复]【英文标题】:Javascript ternary operator syntax not understood [duplicate] 【发布时间】:2016-09-05 23:47:24 【问题描述】:我想明白这一点,有人可以写成(if/else/elseif)语句???
lists[list === 'todo' ? 'done' : 'todo'].appendChild(task);
谢谢
【问题讨论】:
奇怪的逻辑 - 如果某件事的状态为“待办事项”,则将其添加到“已完成”,否则添加到“待办事项” 我认为三元运算符重复至少是 OP 混乱的一半。主要是关于括号符号与三进制的组合。 【参考方案1】:你可以改写为:
if (list === 'todo')
lists.done.appendChild(task);
else
lists.todo.appendChild(task);
这里的事情是您可以通过bracket notation 访问对象的任何属性,这允许变量和表达式解析为属性名称。因此,lists.done
等价于lists['done']
,但使用后者,您可以使用表达式来计算键名。这就是原始示例中的内容。
【讨论】:
这个行得通,非常感谢【参考方案2】:if (list === 'todo')
lists['done'].appendChild(task);
else
lists['todo'].appendChild(task);
【讨论】:
以上是关于Javascript三元运算符语法不理解[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 className if-else 语法中反应 JSX [重复]
JavaScript三元表达式&分支流程控制 switch 语句