Ponto e virgula em javascript é opcional como separador de instruções, no entanto deve-se tomar muito cuidado.
Um caso como:
a = b + c
(d + e).print()
Será avaliado como:
a = b + c(d + e).print();
No caso de um for
, no entanto, o uso de ponto e vírgula é obrigatório dentro de sua sintaxe:
for (var i=0; i < 10; i++)
Se não houver um corpo de instruções a ser executado um ponto e vírgula deve ser adicionado, caso contrário um bloco como:
for (var i = 0; i < 5; alert(i), i++)
document.write("oi")
Será interpretado como:
for (var i = 0; i < 5; alert(i), i++)
{
document.write("oi")
}
Logo, para evitar isso o ponto e vírgula deve ser adicionado e o código fica assim:
for (var i = 0; i < 5; alert(i), i++);
document.write("oi")
No caso de mais de uma instrução na mesma linha é obrigatório o uso de ponto e vírgula.
var i; i = 42
Usar ponto-e-vírgula não é obrigatório, mas é boa prática que irá melhorar a visualização é manutenção do código, facilitando identificar onde uma expressão acaba e outra começa.
Peguei esse compilado de respostas neste link, achei interresante compartilhar, espero ter ajudado. Abraços!