Os tipos de dados suportados pela linguagem ECMAScript (versão 2021) são
- A)Null, Boolean, Binary, Symbol, Real e Integers.
Errada, porque a ECMAScript não possui tipos chamados Binary ou Real, e também não separa Integer como tipo nativo.
- B)Null, Boolean, Varchar, Symbol, Real, Integers e Object.
Errada, porque Varchar não é tipo da ECMAScript e Integer não aparece como tipo básico separado.
- C)Undefined, Null, Boolean, String, Symbol, Number, BigInt e Object.
Certa, porque corresponde aos tipos definidos pela especificação da ECMAScript 2021: Undefined, Null, Boolean, String, Symbol, Number, BigInt e Object.
- D)Undefined, Null, Boolean, Varchar, Symbol, BigInt, Real, Money e Polimorphic.
Errada, porque Varchar, Real, Money e Polimorphic não são tipos da ECMAScript.
- E)Complex, Null, Boolean, Binary, Varchar, LongInt, Real, Money, Object e Polimorphic.
Errada, porque Complex, Binary, Varchar, LongInt, Money e Polimorphic não pertencem ao conjunto de tipos da ECMAScript.
Gabarito: C
Na ECMAScript 2021, os tipos de dados fundamentais são bem específicos: Undefined, Null, Boolean, String, Symbol, Number, BigInt e Object. Em prova, a banca adora misturar nomes que parecem plausíveis, mas que não fazem parte da linguagem, como Varchar, Real ou Money, que lembram bancos de dados e linguagens mais voltadas a tipagem estática. O ponto principal é lembrar que a especificação da ECMAScript define esses tipos nativos. Entre eles, Number representa todos os números de ponto flutuante padrão, enquanto BigInt serve para inteiros muito grandes. Object é o tipo que engloba estruturas mais complexas, e os demais são tipos primitivos. Por isso, o gabarito é a alternativa C. Ela lista exatamente os tipos reconhecidos pela ECMAScript 2021, sem inventar categorias estranhas. Em concurso, esse tipo de questão cobra memorização da especificação e atenção ao vocabulário técnico, porque a tentação de achar que "Real" ou "Integers" são nomes corretos é grande, mas é cilada clássica.