Executando verificação de segurança...
4

Complementando: embora a MDN chame esses tipos de primitivos, a especificação da linguagem chama-os de "Language Types".

Em outro trecho da especificação há a definição de "primitive value":

member of one of the types Undefined, Null, Boolean, Number, BigInt, Symbol, or String as defined in clause 6
(e o item 6 é o link que já vimos acima, que define os Language Types).

E um ponto confuso, também citado na MDN, é que os tipos primitivos não possuem métodos, mas se comportam como se possuíssem. Isso porque quando um método é chamado, é feito automaticamente um autoboxing para o respectivo objeto wrapper.

Ou seja, para os primitivos number, string, bigint, boolean e symbol, existem os respectivos objetos wrappers. Se vc chama um método no tipo primitivo (por exemplo, algumaString.split(',')), o autoboxing automaticamente cria o objeto wrapper e chama o método.

Já quanto aos objetos, a linguagem define vários outros além de Array e Object, como por exemplo Date, Function, Math, RegExp, entre outros.

Carregando publicação patrocinada...