Open2
console.log([0, 1, 2][0, 1, 2]) の出力結果は?

正解は... 「2」でした!!いかがでしたか?

解説
1つ目の [0, 1, 2]
は配列リテラルです。単純に、長さ3の配列を作成しています。
2つ目の [...]
はインデックスへのアクセス(ブラケット記法)として扱われます。
例えば、 ["a", "b", "c"][0]
であれば、配列の0番目にアクセスするので出力は"a"
となります。
次に、インデックスを指定する部分が 0, 1, 2
という見慣れない形式になっている点について考えてみます。
実はこのカンマは、カンマ演算子 にあたります。実はJSではカンマが演算子として定義されており、その挙動は、「単に最後の値を返す」というものになります。
const x = (1,2,3)
console.log(x) // 3
const y = ("a", "b", "c", "d", "e")
console.log(y) // "e"
つまり、最後の項目以外は全て無視されるということですね!
これを踏まえると、冒頭の問題は以下のよう変換できます。
// 元の問題
[0, 1, 2][0, 1, 2]
// カンマ演算子を外すとこうなる
[0, 1, 2][2]
ということで、正解は 2 でした!