Após a execução do seguinte código em JavaScript, qual será ...

Próximas questões
Com base no mesmo assunto
Q4232605 Programação

Após a execução do seguinte código em JavaScript, qual será a saída exibida no console? 


let a = "10";

let b = +a;

console.log(typeof b);


Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: E

Fundamento decisivo: O uso do operador unário + em let b = +a faz a conversão da string "10" para número, o que determina que typeof b resulte em "number".

Tema central: Coerção numérica em JavaScript
Análise das alternativas
A
Errada
Incorreta. b não recebe um valor booleano; recebe o número 10 após a conversão feita pelo operador unário +. Por isso, typeof b não pode retornar "boolean".
B
Errada
Incorreta. O resultado de +"10" é um valor primitivo numérico, não um objeto. Portanto, typeof b não retorna "object".
C
Errada
Incorreta. a começa como string, mas isso não define o tipo final de b. Na atribuição b = +a, ocorre conversão numérica, então b não permanece string.
D
Errada
Incorreta. O código não cria nenhum símbolo, e a conversão promovida por +a é numérica. Assim, não há fundamento para typeof b resultar em "symbol".
E
Certa
A alternativa E está certa porque o operador unário + converte a string "10" em número. Assim, b recebe o valor 10 e typeof b retorna "number".
Pegadinha da questão
A confusão real é olhar para o literal inicial "10" e marcar string, ignorando que o operador unário + altera o tipo ao converter a string para número.
Dica para questões semelhantes
  • Quando houver + antes de uma variável ou literal em JavaScript, verifique se ele está como operador unário, pois isso indica conversão para número.
  • Não confunda o tipo da variável original com o tipo da variável após uma atribuição que faz coerção.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo