В wtfjs я обнаружил, что следующее является законным javascript.
",,," == 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
Похоже, что он ведет себя точно так же, как разделенный запятой ;
список операторов, просто возвращающий значение последнего оператора.
Есть ли ссылка где-нибудь, описывающая этот синтаксис и его семантику? Почему он существует, т.е. Когда он должен использоваться?