Inserção automática de ponto-e-vírgula e instruções de retorno [duplicado]
Esta questão já tem uma resposta aqui:
Quais são as regras para a inserção automática de ponto-e-vírgula (ASI) do JavaScript? 4 respostasComo você deve saber, o ECMAscript tenta ser inteligente e irá inserir automaticamenteponto e vírgula se você não escreveu isso explicitamente. Exemplo simples
function foo() {
var bar = 5
return bar
}
ainda funcionará como esperado. Mas há algumas ressalvas se você confiar nisso. Se nós reescrevermos essa função assim
function foo() {
var bar = 5
return
{
bar: bar
}
}
..que função retornaria agoraundefined
porque o intérprete iria inserir esse ponto e vírgula logo após oreturn
declaração (essa é uma razão pela qual você sempre deve trazer chaves na mesma linha que uma instrução).
No entanto, sabendo tudo isso eu estou querendo saber agora comoseguro a return
declaração como a seguinte, em navegadores e versões
function foo() {
var a = true,
b = true,
c = false;
return a
&& b
&& c;
}
Eu acabei de escrever um similarreturn statement
em um ambiente de produção. Só porque eu sabia sobre os "problemas" com ECMAscript sendo não tão esperto sobre a inserção de ponto-e-vírgula Eu estou querendo saber agora, se esse código funciona 100%. Nos meus primeiros testes em FF / Chrome / IE (versões mais recentes), isso parece estar totalmente bem, mas será mesmo?
Oinserção automática de ponto-e-vírgula "acordar" se houver outra coisa que não seja oreturn
declaração nessa linha? Alguém pode fornecer detalhes de nível de implementação sobre isso?