wtfjsに、私は以下が合法的なjavascriptであることが判明しました。Javascript "tuple"表記法:そのポイントは何ですか?
",,," == Array((null,'cool',false,NaN,4)); // true
引数(null,'cool',false,NaN,4)
は私にはタプルのように見えますが、JavaScriptはタプルを持っていません!
javascriptコンソールでのいくつかのクイックテストでは、次のような結果が得られます。
var t = (null,'cool',false,NaN,4); // t = 4
(null,'cool',false,NaN,4) === 4; // true
(alert('hello'), 42); // shows the alert and returns 42
は、単に最後の文の値を返す、ステートメントのセミコロン区切りリスト;
と全く同じように動作するように表示されます。
この構文とそのセマンティクスについての説明がありますか?なぜそれが存在するのですか、それはいつ使用されるべきですか?
カンマ演算子です。http://javascriptweblog.wordpress.com/2011/04/04/the-javascript-comma-operator/ – Lepidosteus
カンマ演算子を使用して、一連の関数を実行することもできますとにかく最後のステートメントの結果を返すので、三つ目の枝の中で: 'var a = isTrue? (b = g(c)、f(b)) 'である。まれに賢明ですが、可読性よりも非常に簡潔なコードが優先される場合や、短時間でデバッグする場合には便利なことがあります。 – Fx32
これはJavaScriptでは「式」と呼ばれていますが、これは小さな部分を演奏していますが、単にカンマ演算子の効果ではありません。この式はカンマ演算子のために解決されます。評価された式の可変変数に値を設定できます。たとえその式が未定義であっても。 – Relic