void это не функция и не метод, это оператор (типа плюса или минуса), после этого оператора обязано идти выражение. Например вот так будет ошибка: href="javascript: void" а вот так ошибки не будет: href="javascript: void 0" можно даже вписать туда любую хрень: href="javascript: void 'Hello World!'" Так же необходимо понимать, что в JS скобки обозначают не только то, что мы пареметры для функции передаём, но и то, что нужно выполнить некое выражение и вернуть его результат. Т.е. когда вы пишете void() это, на самом деле, надо понимать как void () - я специально разными цветами пометил, чтобы было видней, что это два оператора, а не один как function() например. Т.е. получается, что сперва выполнится выражение в скобках, так как там пусто оно вернёт undefined, потом этот undefined передастся на исполнение void, и void тоже вернет undefined. Резюмируя: да можно написать тупо пустые скобки, но чтобы любому программисту было понятней читать код народ вписывает туда 0, а 0 вписывают, просто потому что так короче.