Что делает запятая в операторах присваивания в JavaScript?

Я нашел это в куске кода, и мне интересно, что он делает? Назначьте b в x... но что с ,c?

var x = b, c;

Ответ 1

Объявляет две переменные x и c и присваивает значение b переменной x.

Это эквивалентно более явному виду *:

var x = b;
var c;

JavaScript допускает несколько объявлений на var keyword – каждая новая переменная разделяется запятой. Это стиль, предложенный JSLint, который инструктирует разработчиков использовать одну переменную для каждой функции (сообщение об ошибке от JSLint Combine this with the previous 'var' statement.).

* Собственно, из-за подъема это будет интерпретироваться как var x; var c; x = b.

Ответ 2

Определяет две локальные переменные x и c - при установке значения x, равного значению b.

Ответ 3

c undefined.

Это эквивалентно:

var x = b;
var c;

Ответ 4

Это то же самое, что и

var x = b;
var c; 

Один из тех настолько умных, это очень глупые дополнения к языку.