Ao emitir uma NF-e com operPres = 2 (operação não presencial...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E
Tema central da questão:
Esta questão trata da validação de campos obrigatórios em formulários usando JavaScript, com ênfase em lógica condicional e manipulação de exceções. O objetivo é impedir a emissão de uma NF-e (Nota Fiscal Eletrônica) quando a operação não for presencial (operPres == 2) e o campo de e-mail estiver vazio (!email).
Resumo teórico:
Em JavaScript, utilizamos if para estruturas condicionais e throw new Error() para lançar exceções, interrompendo o fluxo do programa quando uma regra não é atendida. O operador && (E lógico) garante que ambas as condições sejam verdadeiras para executar a ação, enquanto !email verifica se o campo de e-mail está vazio, nulo ou indefinido. Fontes: Mozilla Developer Network (MDN Web Docs), documentação oficial JavaScript.
Justificativa da alternativa correta (E):
A instrução if (operPres === 2 && !email) throw new Error("Email obrigatório"); está correta porque:
- Usa === (igualdade estrita), recomendada em JavaScript para evitar conversões automáticas de tipo.
- Garante que operPres seja exatamente 2 e (&&) que o e-mail não tenha valor.
- throw new Error() é a forma padrão de lançar exceções em JavaScript.
Análise das alternativas incorretas:
- A: Usa == (comparação não estrita) e throw new ArgumentException, que não existe em JavaScript (é de outras linguagens como C#).
- B: Usa || (OU lógico), o que faria a exceção ser lançada mesmo se apenas uma condição for verdadeira, e Exception não é padrão em JavaScript.
- C: Usa raise ValueError, sintaxe do Python e não de JavaScript.
- D: Usa || e IllegalArgumentException, que não existe em JavaScript (é do Java).
Dica de interpretação:
Atente-se para compatibilidade da sintaxe com a linguagem pedida e ao uso correto dos operadores lógicos. Observe nomes de exceções e operadores de comparação: === (igualdade estrita) é mais seguro em JavaScript.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Gabarito: alternativa E
A) Incorreta.
ArgumentException não existe em JavaScript, sendo uma exceção típica de linguagens como C# ou Java.
B) Incorreta.
O operador lógico está incorreto. O uso de OU faz com que o erro seja lançado mesmo quando a operação não é não presencial.
C) Incorreta.
Raise ValueError é sintaxe da linguagem Python, não de JavaScript.
D) Incorreta.
IllegalArgumentException não existe em JavaScript e o operador lógico também está errado, pois deveria ser E.
E) Correta.
Utiliza sintaxe válida de JavaScript, operador lógico correto e lança um erro adequado quando a operação é não presencial e o e-mail está vazio.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo