Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá Samuel!
Vamos analisar as duas alternativas para exibir uma mensagem com o número secreto e o chute do usuário, e entender qual delas é a correta em JavaScript.
Passando a vista de forma rápida, parecem ser iguais, mas não são.
Alternativa B:
alert('O número secreto era ' + numeroSecreto + ', mas você escolheu ' + chute);
Esta é a forma correta. Ela usa o operador de concatenação + para juntar as strings e as variáveis dentro de uma única string que será exibida no alert.
' O número secreto era ': Uma string literal.
+: O operador de concatenação, que junta strings.
numeroSecreto: A variável que contém o número secreto. O JavaScript converte automaticamente o valor da variável para string, se necessário.
', mas você escolheu ': Outra string literal.
chute: A variável que contém o chute do usuário. Também é convertida para string, se necessário.
Exemplo: Se numeroSecreto for 7 e chute for 5, o alert exibirá a mensagem: "O número secreto era 7, mas você escolheu 5".
alert('O número secreto era ' + numeroSecreto, ' e você escolheu ' + chute);
Esta alternativa está incorreta. A função alert() aceita apenas um argumento: a string que será exibida na caixa de diálogo. Ao usar uma vírgula, você está passando múltiplos argumentos para a função, o que não é a sintaxe correta. O JavaScript pode até não gerar um erro imediatamente em alguns casos, mas o comportamento será inconsistente e provavelmente não exibirá a mensagem como você espera. O segundo argumento, ' e você escolheu ' + chute, será ignorado.
Exemplo: Se numeroSecreto for 7 e chute for 5, o alert exibirá apenas: "O número secreto era 7". A segunda parte da mensagem não aparecerá.
Espero ter esclarecido.
A alternativa correta seria aquela que apresenta a mensagem concatenando a variável numeroEscolhido com a string fixa, seja usando o operador + ou template literals.