2017-09-24 5 views
0

no-return-assignでは、return文には何も指定できません。しかし、デフォルトでは、あなたが括弧内に代入を置いたときにそれを許可します。「ノーリターンアサイン」 - カッコ付きかどうかの指定

return (foo = 1 + 1)return foo = 1 + 1の間に技術的な違いはありますか?

私は括弧でelement.position.width = widthを入れて、エラーメッセージを回避するには

return createMatrixRow(
    width, 
    element, 
    addWidth, 
    elements.concat(addWidth ? Object.assign({}, element, (element.position.width = width)) : element) 
) 

で次のことを試してくださいので、私はこの質問を持っています。

+0

グループ化演算子は評価の順序を変更できますが、単一の式の結果は決して変更しません。私。 'foo'と'(foo) 'はまったく同じです。 –

答えて

5

違いはありません。どちらの場合も、括弧では、式はグループ化演算子であり、元の代入式を受け取り、その結果を返すという点を除いて、単一の式を形成します。

エラーのように見える割り当てを手作業で上書きするには、括弧を使用することがかなり一般的です。

例えば、これは通常リンターを困らます

while (x = re.exec(data)) { 
    // do work 
} 

条件として割り当てが非常にしばしば==が意図したミスであることである理由。

しかし、これは多くの場合、それを満足させる:

while ((x = re.exec(data))) { 
    // do work 
} 

そう余分両親は「はい、私はこれが割り当て知っているので、私は示すために、これらの不要な括弧でそれをラップしますを言うの方法ですその "

1

return foo = 1 + 1; 

return (foo = 1 + 1); 

は限りJavaScriptのセマンティクスが懸念しているものと同一です。

関連する問題