2016-03-19 5 views
0

の場合ですd3.jsこれはjavascriptのカンマ演算子

if (y1 < y0) t = y0, y0 = y1, y1 = t; 

からthisコードは、この最後の値を割り当てる/返すという意味で、comma operatorとは何か、あるいは

に相当しています見てください
if (y1 < y0) { 
    t = y0; 
    y0 = y1; 
    y1 = t; 
} 

私はトリッキーな何も操作の順序に依存することによって、ここで起こって、詳細については心配していました。

+0

は、カンマ演算子が高速ダウンロードにつながる、より簡潔にするために使用し、少ない場合

わかりませんメモリフットプリント。 –

+1

@ArifBurhanあなたがそれらをサポートできる場合を除き、そうした主張をすることは避けてください。 – naomik

+1

トリッキーな表現ではなく、各式の左から右の単純な評価だけです。カンマ演算子はすべての演算子の中で最も優先度が低いため、そこにはほとんど心配はありません。個人的に、私が1行でそれを望むなら、私は次のように書くでしょう: 'if(y1

答えて

0

はい、最初のスニペットはコンマ演算子を使用し、コンマ演算子は左から右に評価されるように、両方のスニペットは、等価です。

コンマ演算子は、単一のの文に複数の割り当てを置くために、あなたのスニペットで使用されているので、それらはすべて、前ifによって支配されており、いくつかの文字({})を保存することができます。これは手動で行う価値があるが、minifiersは、一般的な最適化のこの種を行う(そして、それは合算)

完全に正しい