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三元运算符语法不理解[重复]的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 速记三元运算符

在 className if-else 语法中反应 JSX [重复]

JavaScript三元表达式&分支流程控制 switch 语句

我们在 JavaScript 中有更简单的三元运算符吗? [复制]

Javascript 三元运算符的运算符优先级

jquery实现全选取消反选加JavaScript三元运算(三种法法实现反选)