Первый вариант:var a = 0, b = 0;
имеет несколько явных недостатков:
1. При наличии системы контроля версий, добавление новой переменной будет неинформативно. Будет изменена вся строка, что незначительно усложнит ревью кода.
2. Субъективно подобная запись мешает восприятию кода. В ней плохо различимы переменные без присвоенного значения. Т.е.
var a = 0, b = 0, c, d = 0;
Второй вариант:var a = 0;
var b = 0;
Является наиболее расширяемым в плане версионирования (не имеет проблемы с выставлением запятой, как в приведенном ниже третьем варианте), но перегружен служебными словами.
Лично я предпочитаю пользоваться этим синтаксисом в nodejs модулях для подгрузки библиотек в верхней части скрипта:
var fs = require('fs');
var path = require('path');
Третий вариант:var a = 0,
b = 0;
Несколько проигрывает второму в плане удобства версионирования (при добавлении переменной С будет изменено две строчки, а не одна), но наиболее распространен в js best practices. Одинаково применим как с выравниванием по 4 пробелам для выстраивания переменных в столбик, так и без надуманного выравнивания.
Из минусов этого варианта, можно отметить забытую запятую после a = 0. В таком случае переменная b будет объявлена глобально, если не используется "use strict"