El punto y coma en Javascript es perfectamente opcional, siempre que en una misma línea no tengas más que una sentencia. Esa sería la regla de oro, yo diría que la única regla que necesitas saber.
Por ejemplo:
var x = 1;
x += 3;
Es tan correcto como:
var x = 1
x += 3
Sin embargo, si estas dos sentencias estuvieran en la misma línea, entonces sí deberían llevar punto y coma:
var x = 1; x += 3
Dentro de un bloque se sigue la misma regla. Por ejemplo:
for(var x = 1; x <= 100; x++) {
x += 10;
alert(x);
}
Es tan correcto como:
for(var x = 1; x <= 100; x++) {
x += 10
alert(x)
}
Pero si pones ambas líneas juntas, tienes que usar el punto y coma para separar las sentencias:
for(var x = 1; x <= 100; x++) {
x += 10; alert(x)
}
Además, hay lugares donde no se suele colocar el punto y coma, creo que más por estética que por otra cosa, generalmente cuando se acaba en una llave.
Por ejemplo mira esto:
var x = {
prop: 33,
foo: "hola"
}
Si le ponemos punto y coma después de todas las sentencias, entonces tendríamos por coherencia ponerle punto y coma después de la declaración del literal de objeto.
var x = {
prop: 33,
foo: "hola"
};
Sin embargo, nadie suele poner ahí el punto y coma. Por ejemplo tampoco en las funciones:
function foo() {
alert("Soy foo");
};
Nadie pone ese punto y coma después de la declaración de la función, aunque Javascript te lo acepta, lógicamente.
Sentencias en la misma línea
Aunque sea posible poner varias sentencias en la misma línea, separando por punto y coma, es importante señalar que no es una buena práctica, porque dificulta la legibilidad del código.
A fin de hacer código más fácilmente entendible por humanos, que es la clave de la programación correcta, es importante separar las sentencias por saltos de línea.
El punto y coma depende de usos y costumbres
Al final el punto en Javascript y coma suele ser una cuestión de gustos o de costumbre. Los desarrolladores que llevamos años usándolo, incluso en otros lenguajes que aprendimos antes, nos resulta complicado dejarlo de lado. Pero como el intérprete de Javascript no se queja cuando te lo olvidas, a veces puede que nos lo dejemos sin darnos cuenta.
Lo que sí es importante es que tengamos una homogeneidad en el código y que lo usemos, o no, con coherencia. No se trata de poner punto y coma en un código y dejar de ponerlo en otro. Si fuera así quedaría un poco raro.
Lo ideal es seguir las costumbres del equipo de desarrollo en el que trabajemos. Generalmente habrá un líder que es el que diga si debemos colocar punto y coma, por estilo, o no debemos colocarlo.