← Questões de Programação

Programação · FGV · 2024

Questão comentada de Programação

Considere o seguinte código em ECMAScript 2021: const num = 1_2_3_4_5+1_0; console.log(num) Ao ser executado, o código acima exibe o seguinte texto no console:

Gabarito: B

No ECMAScript 2021, o caractere de sublinhado em literais numéricos serve apenas como separador visual. Ele ajuda a leitura do número, mas não vira parte do valor, nem faz concatenação de texto. Assim, `1_2_3_4_5` é lido como `12345` e `1_0` é lido como `10`. Então a expressão `const num = 1_2_3_4_5 + 1_0;` faz uma soma normal entre dois números. Não há string, não há `undefined` e muito menos `NaN`. O JavaScript só está sendo simpático com sua leitura, mas na hora de calcular ele tira os “enfeites” e soma tudo direitinho. Fazendo a conta: `12345 + 10 = 12355`. Por isso, ao executar `console.log(num)`, o console exibe `12355`. Em resumo, a banca explorou uma regra de sintaxe do padrão ECMAScript: separadores numéricos com `_` são permitidos em literais desde versões recentes da linguagem, mas não alteram o valor numérico.

Continue treinando

Questões relacionadas