私はそれがある種の解析エラーを生成するはずであるように見えますが、そうではないいくつかのjavascript構文を偶然見つけました:
if (true, true) {console.log('splendid')} else {console.log('horrid')} // splendid
if (true, false) {console.log('splendid')} else {console.log('horrid')} // horrid
すべての式が実行されますが、最後の式のみがロジックに影響を与えるようです:
if (console.log('super'), true) {console.log('splendid')} // super splendid
なぜそれが有効なJavaScript構文であるのか誰でも知っていますか?実用的な使い方はありますか?
カンマ演算子は複数の式をつなぎ合わせ、演算の結果は最後のオペランドの値です。唯一の実際の用途は、割り当てや関数呼び出しなど、複数の副作用を発生させる必要がある場合です。
javaScriptのコンマは、実際にはかなり難解です。私が見た中で最もクールな使い方はこれです
while(doSomething(), checkIfSomethingHappened());
最も一般的なのは、varが最近のjsで使用される方法です。
var foo = 1,
bar = 2;
これは、ループ内に複数のイテレータがある可能性がある他のほとんどのプログラミング言語と同じです。
int x,y;
for(x = 0, y = 0; x < 10 || y < 100; x++, y++) {
....
}
同じコンテキストで操作と比較を行うことを許可します。
例:
if(a = 2, a > 1) console.log('a is', a)