Olá a todos. Porque o código funcionou na situação abaixo? Não deveria ter gerado um erro por não ter o ponto-e-vírgula?
<script>
alert("Podemos fazer mais com Javascript!")
alert("29/05/2014")
</script>
Olá a todos. Porque o código funcionou na situação abaixo? Não deveria ter gerado um erro por não ter o ponto-e-vírgula?
<script>
alert("Podemos fazer mais com Javascript!")
alert("29/05/2014")
</script>
Pergunta interessante!
O código pode funcionar sem o ponto-e-virgula após uma declaração, mas para isso é preciso que exista um fim-de-linha ou uma sintaxe correcta.
Vamos aos exemplos:
Exemplo 01:
alert("olá")
Resultado: Funciona! Aparece um alerta.
Exemplo 02:
alert("olá")
alert("olá novamente")
Resultado: Funciona! Aparecem dois alertas.
Exemplo 03:
alert("olá"); alert("olá novamente")
Resultado: Funciona! Aparecem dois alertas.
Exemplo 04:
alert("olá")alert("olá novamente")
Resultado:
SyntaxError: missing ; before statement
alert("olá")alert("olá novamente")
O ";" serve como um delimitador de stataments, contudo, devido ao ASI, o "\n" também irá funcionar como delimitador de statament. Óbvio que existem exceções. "Não usei um delimitador e funcionou, então não vou usar mais": A não utilização pode causar várias situações e é bom saber entender cada uma delas. Se quiser saber mais, recomendo a leitura: http://loopinfinito.com.br/2013/10/22/mamilos-pontos-e-virgulas-em-js/
Interessante esse site.