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