Data Types — Tipos de dados JavaScript

Aprenda sobre os tipos de dados em JavaScript incluído os tipos primitivos e de referência.

Ricardo Reis
8 min readMay 10, 2020

--

English version: https://www.javascripttutorial.net/javascript-data-types/

Javascript tem 6 tipos de dados primitivos:

  1. null
  2. undefined
  3. boolean
  4. number
  5. string
  6. symbol — disponível somente após ES6

e um tipo de dado complexo chamado de objeto.

Descobrir o tipo da variável

Para obter o tipo de uma variável já declarada (iniciada) use typeof:

typeof [variável] = mostra o tipo da variável

JavaScript é uma linguagem dinâmica ou pouco “tipada”, portanto uma variável não se associa a nenhum tipo, mas seu valor sim. Em outras palavras, a mesma variável pode guardar valores de tipos diferentes a qualquer momento.

Para obter o atual tipo do valor de uma variável, use o operador typeof.

undefined

O tipo undefined é um tipo primitivo que tem um valor especial undefined. Por padrão, quando uma variável é declarada, mas não inicializada, é atribuído a ela o valor undefined.

Considere o seguinte exemplo:

Nesse exemplo, foo é uma variável. Como foo não foi inicializada, é atribuo a ela o valor undefined. O tipo de foo é undefined.

É importante observar que o operador typeof também retorna undefined quando você o chama em uma variável que não foi declarada:

null

O tipo null é o segundo tipo de dado primitivo que tem somente um valor: null. O JavaScript define que null é um ponteiro de objeto vazio.

Veja o exemplo:

é uma boa prática atribuir null a uma variável irá guardar um objeto no futuro, para que você possa verificar se o objeto é null ou não, usando a instrução if da seguinte maneira:

O JavaScript define que null é igual a undefined conforme mostrado na declaração a seguir:

number

O JavaScript usa o formato IEEE-74 para representar números inteiros e de pontos flutuantes.

Números inteiros

A instrução a seguir declara uma variável que guarda um número inteiro:

Se você deseja representar os literais octal (base 8), coloque o primeiro dígito como zero (0) seguido pelos números do dígito octal (0 a 7) da seguinte maneira:

Se o literal de um número octal estiver fora do intervalo, o JavaScript o trará como um decimal, conforme mostrado no exemplo a seguir:

Para evitar a confusão, o ES6 permite que você especifique um literal octal usando o prefixo 0o seguido por uma sequência de dígitos octais de 0 a 7:

Para criar um literal hexadecimal (base 16), você deve usar 0x (em minúsculas) como os dois primeiros caracteres seguidos por qualquer número de dígitos hexadecimais (0 a 9 e A até F).

Ponto Flutuante (números decimais)

Para representar um número ponto flutuante, inclua um ponto decimal ( . ) seguido de pelo menos um número. Veja o exemplo a seguir:

JavaScript converte um número ponto flutuante em um número inteiro se o número parecer ser com um número inteiro (quando depois do ponto tiver apenas zeros). A razão é que o JavaScript sempre quer usar menos memória, pois o valor de um ponto flutuante usa duas vezes mais memória que um número inteiro.

O JavaScript permite que você usar a notação eletrônica (e-notation) para representar números muito grandes ou pequenos, como no exemplo a seguir:

O JavaSctipt fornece valores mínimos e máximos de um número que você pode acessar usando Number.MIN_VALUE e Number.MAX_VALUE. Além disso, o JavaScript usa Infinty e -Infinity para representar um número finito, positivo ou negativo.

Veja o exemplo:

NaN

O JavaScript tem um valor numérico especial chamado de NaN, uma abreviação de Not a Number, que significa que o número é inválido.

Por exemplo, a divisão de uma string por um número, vai retornar NaN como no exemplo a seguir:

O NaN tem duas características especiais:

  1. Qualquer operação com NaN vai retornar NaN.
  2. O NaN não é igual a nenhum valor, incluindo ele mesmo.

Aqui estão alguns exemplos:

string

No JavaScript, uma string é uma sequencia de zero ou mais caracteres. Uma string literal começa e termina com aspas simples ' ou com aspas duplas ". Uma string que começar com aspas duplas precisa terminar com aspas duplas e uma string que começar com aspas simples, precisa terminar com aspas simples.

Exemplos:

As strings no JavaScript são imutáveis (para o motor JavaScript). Isso significa que você não pode modificar uma string depois que foi criada. No entanto, pode criar uma nova string com base em uma operação na string original, assim:

Nesse exemplo o código diz o seguinte:

  • Primeiro, declare a variável foo e inicialize uma string com o valor JavaScript.
  • Depois, usando o operador + combine 'JavaScript' com ' String' para criar o valor 'JavaScript String'.

Por traz dos panos, o motor do JavaScript criou uma nova string que guardar 'JavaScript String' e destruiu as outras duas strings 'JavaScript' e ' String'.

boolean

O tipo boolean possui dois valores true ou false (em minúsculas). O exemplo a seguir declara duas variáveis que guardam valores boleanos.

O JavaScript permite que valores de outros tipos sejam convertidos em valores boleanos de true ou false.

Para converter um valor de um outro tipo de dados em um valor boleano, use a função Boolean.

A tabela a seguir mostra as regras de conversão:

  Tipo    |            true              |      false
----------+------------------------------+-----------------
string
| string não vazia | string vazia
----------+------------------------------+-----------------
number | diferente de zero e infinito | 0, NaN
----------+------------------------------+-----------------
object | objeto não nulo | null
----------+------------------------------+-----------------
undefined | | undefined
----------+------------------------------+-----------------

Veja a seguinte demonstração:

symbol

O IE6 adicionou um tipo primitivo no JavaScript: o symbol.

Diferente de outros tipos primitivos, o tiposymbol não tem uma forma literal.

Para criar um símbolo, chame a função Symbol como a seguir:

Observe que Symbol é uma função, não um construtor de objetos, portanto, não use o operador new. Se você usar terá um TypeError.

A função Symbol cria um valor único toda vez que você chamar ela.

Você pode passar uma string descritiva para a função Symbol com o propósito de registro e depuração:

Quando você chamar o método toString na variável de símbolo, ele vai retornar um nome mais descritivo, como por exemplo:

Você pode usar símbolos para diversos propósitos. Um deles é criar uma constante em forma de string que não vai colidir com qualquer outro valor.

A string 'click' pode ser usada para diferentes propósitos e não exclusiva. No entanto, o símbolo click é absolutamente exclusivo.

object

No JavaScript, um objeto é uma coleção de propriedades, onde cada propriedade é definida com um bar de chave e valor.

O exemplo a seguir define um objeto vazio usando dando a forma literal de objeto:

O próximo exemplo define um objeto person com duas propriedades:

Um nome de propriedade de um objeto pode ser qualquer string. Você pode usar aspas ao redor do nome da propriedade se não for um identificador válido.

Por exemplo, se você tiver uma propriedade first-name, você deveusar aspas como por exemplo "first-name" mas firstName é um identificador válido então as aspas são opcionais.

Se você tiver mais que uma propriedade, use vírgula (, ) para separar os pares.

O JavaScript permite você aninhar objetos, como no exemplo abaixo:

O objeto contato possui as propriedades firstName, lasttName, email, phone e address. A propriedade address também é um objeto que possui as propriedades building, street, city, state e country.

Você pode acessar as propriedades de um objeto usando duas notações:

  • Notação por ponto .
  • Notação estio array []

No exemplo a seguir usando a notação de ponto . para acessar as propriedades firstName e lastName do objeto contato:

Para obter a propriedade de um objeto aninhado, use a seguinte forma:

Se você referenciar uma propriedade que não existe, você vai obter um valor undefined:

O exemplo a seguir usa a notação estilo array para acessar as propriedades email e phone do objeto contact:

Além da forma literal de criação de objeto, você pode usar a palavra chave new para criar um novo objeto, da seguinte maneira:

E atribuir um valor para uma propriedade do objeto:

No JavaScript, todos os objetos são derivados do tipo Objetc. Vamos falar mais do tipo Object em um outro tutorial.

Neste tutorial, você aprendeu mais sobre os tipos de dados primitivos do JavaScript: undefined, null, number, string, boolean, symbol e objetc.

Veja o índice de todos os tutoriais JavaScript

Confira uma série de outros tutoriais JavaScript que eu escrevi, clicando no link abaixo:

--

--