0

これは、ノードの子を置き換える JavaScript の関数です。

var app = {};
app.replaceChildren = function (node, childrenReplacementNode) {
    var child;
    while (child = node.firstChild) {
        node.removeChild(child);
    }
    node.appendChild(childrenReplacementNode);
};

述語を次のように記述する必要がある JS 実装はありますか

((child = node.firstChild))?

4

1 に答える 1

0

いいえ、JavaScript では余分な括弧が必要になることはありません。存在しても、言語レベルでは何の役にも立ちません。

それを間違えるには、エンジンを根本的に壊す必要があります。代入式の結果は代入された値であり (これが機能する理由ですa = b = foo())、whileループの括弧内の式が評価され、結果の値が強制的にブール値に変換されて、ループを続行するかどうかが決定されます。これらのいずれかが間違っている (またはコードを破る lint スタイルのエラーを追加する) エンジンは、実際にはうまく機能しません。

于 2014-10-23T17:23:07.303 に答える