【发布时间】:2014-12-19 10:51:28
【问题描述】:
这是一个替换节点子节点的 JavaScript 函数
var app = {};
app.replaceChildren = function (node, childrenReplacementNode) {
var child;
while (child = node.firstChild) {
node.removeChild(child);
}
node.appendChild(childrenReplacementNode);
};
有没有要求谓词写成的JS实现
((child = node.firstChild))?
【问题讨论】:
-
嗯,不。括号接受任何表达式,并返回其结果,因此它们是等价的。但是,linter 可能会抱怨该职位的分配。 linter 接受的一种常见语法是在赋值周围使用额外的括号,以便让它知道您确实打算进行赋值而不是比较。
-
...这是jsHint docs,它显示了用于使警告静音的括号。因此,如果您的问题是由您看到的某些代码引起的,那很可能就是原因。
-
您可能会发现这个问题及其答案很有趣,请重新编写清空元素的代码:stackoverflow.com/questions/13798796/…
-
@squint:哦,有趣。
标签: javascript loops variable-assignment predicates