コンマ演算子です。左側のオペランドを評価し、結果を破棄し、右側のオペランドを評価して、それを結果値として取得します。これは左から右への結合であるため、 、 then 、 then をa, b, c
評価し、の結果を値として取得します。a
b
c
c
あなたの例では、次のようになります。
myfunc();
myobj.myvar = someobj.prop;
return myobj;
客観的な理由がなくても、物事を一行で行うことを本当に好む人もいます。あなたが示した例には利点がありません。実際、最初の2ビットが最終的に返される値に関連しているように見えるため、混乱しています。 (私はあなたがそれが圧縮されたコードだと言う前に書いた.
あなたはそれがミニファイヤだと言ったので:ミニファイヤがそこに得た可能性のある非常に小さな利点は、これが条件付きブロックの一部である場合です: 1 つまたは 2 つの文字を節約できます。長い形式が次のようになっていると仮定すると、次のようになります。
if (someCondition) {
myfunc();
myobj.myvar = someobj.prop;
return myobj;
}
...コンマ演算子を使用すると、ミニファイアはこれを実行できます (63 文字):
if(someCondition)return myfunc(),myobj.myvar=someobj.prop,myobj
...これよりも (65 文字):
if(someCondition){myfunc();myobj.myvar=someobj.prop;return myobj}
...コードの機能を変更せずに、最後にセミコロンの自動挿入をトリガーする他の適切な文字 (またはファイルの終わり) が続く場合。それ以外の場合は、最初の文字が必要になりますが、それでも 1 文字節約できます。}
;