Questão nº 47
Questão de Tecnologia da Informação · FCC TRT18 2022 (nº 47)
Um técnico deseja manipular precisamente números inteiros em uma aplicação JavaScript com mais de 15 dígitos. Para armazenar um número nessa proporção em uma variável x, ele deve utilizar a instrução
- A`let x = Long("4556567456345345322466456789098877666555");`
- B`let x = 4556567456345345322466456789098877666555n;` (alternativa correta)
- C`let x = Long.parseLong("4556567456345345322466456789098877666555");`
- D`let x = 4556567456345345322466456789098877666555L;`
- E`let x = toNumber("4556567456345345322466456789098877666555");`
Resposta comentada
Gabarito Alternativa B
JavaScript, por padrão, só consegue representar números inteiros com precisão até cerca de 15 a 16 dígitos. Para trabalhar com números inteiros muito maiores que isso (como o do exemplo, que tem mais de 15 dígitos), precisamos usar um tipo especial chamado BigInt.
(A) Incorreta: `Long` não é um tipo de dado nativo ou um construtor padrão em JavaScript para lidar com números grandes.
(B) Correta: Em JavaScript, para criar um BigInt literal (um número inteiro muito grande), você adiciona a letra `n` minúscula no final do número. Isso garante que o número seja tratado como um BigInt e mantenha sua precisão total, mesmo com muitos dígitos.
(C) Incorreta: `Long.parseLong` não é uma função padrão do JavaScript. Essa sintaxe é comum em linguagens como Java, mas não se aplica ao JavaScript nativo.
(D) Incorreta: O sufixo `L` (maiúsculo ou minúsculo) é usado em algumas outras linguagens de programação (como Java) para indicar um literal `long`, mas não é a sintaxe correta para BigInt em JavaScript. A armadilha aqui é que o `L` é um sufixo para números grandes em outras linguagens, mas em JavaScript o correto é o `n`.
(E) Incorreta: `toNumber` não é uma função global padrão em JavaScript para converter strings em números, especialmente para BigInts. A função `Number()` existe, mas converteria para o tipo `Number` padrão, perdendo a precisão para um número tão grande.
Fonte: FCC TRT18 2022 Técnico Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.