Javascript三元运算符语法不明白

时间:2016-05-10 20:08:13

标签: javascript

我想理解这一点,有人可以写为(if / else / elseif)的陈述???

lists[list === 'todo' ? 'done' : 'todo'].appendChild(task);

由于

2 个答案:

答案 0 :(得分:3)

您可以将其重写为:

if (list === 'todo') {
    lists.done.appendChild(task);
}
else {
    lists.todo.appendChild(task);
}

这里的事情是你可以通过bracket notation访问对象的任何属性,它允许变量和表达式解析为属性名。因此,lists.done相当于lists['done'],但后者可以使用表达式来计算密钥名称。这就是原始示例中的内容。

答案 1 :(得分:1)

if (list === 'todo') {
    lists['done'].appendChild(task);
else {
    lists['todo'].appendChild(task);
}