Skip to content

Latest commit

 

History

History

README.md

Tipos de dados e Objetos

Nesta aula abordamos os tipos primitivos de dados e algumas características dos objetos em JavaScript.

Segue alguns links e material para apoio:

Artigos

We Love Dev:

Video Aulas

Rodrigo Branas:

Aulas de Programação:

Exemplos dados na aula:

Exercícios de fixação:

Artigo de apoio:

Tipos de dados em JavaScript

O padrão ECMAScript atual define 7 tipos de dados, sendo 6 primitivos e Object.

Lista dos tipos primitivos:

  • Boolean
  • null
  • undefined
  • Number
  • String
  • Synbol

Como o JavaScript é uma linguagem dinamicamente tipada os tipos de dados são convertidos automaticamente durante a execução do script. Isso permite a utilização de uma mesma variável para a atribuição de dois tipos distintos de dados.

Exemplo:

  let value = 'Eu sou um texto';
  value = 10;

Outro ponto interessante relacionado a conversão automática é que quanto empregamos o operador de soma em expressões que envolvam valores String e Number o Number é convertido para String, já para os demais operadores como subtração, multiplicação ou divisão a String é convertida para Number.

Exemplo:

  '22' + 2;
  > '222'

  '22' - 2;
  > 20

Para cenários em que precisamos converter uma String para Number podemos utilizar dois métodos parseInt(String, base) onde o parâmetro base é opicional e indica o sistema numérico a ser utilizado e parseFloat(String).

A seguir encontra-se um pouco mais sobre os tipos de dados.

Boolean

O tipo boolean é o tipo mais simples de dados e o mesmo possui dois valores literais (true/false) além do wrapper Boolean.

Um ponto importante sobre o JavaScript é que as seguintes expressões são evaluadas como false:

  • false
  • 0
  • ''
  • ""
  • NaN
  • null
  • undefined
  • 'false'
  • "false"

Exemplo:

  if(!("Não é um número" - 22)) { // equivalente a !NaN
    console.log('entrou!');
  }

  > 'entrou!'

null

Em JavaScript null é o tipo primitivo que indica a ausencia de valor.

undefined

Em JavaScript undefined representa a inexistência de uma determinada propriedade.

Number

Em JavaScript todos os números são agrupados pelo tipo Number. Além de representar os números o mesmo possui três valores simbólicos, +Infinity, -Infinity e NaN. Isso mesmo, por mais incrível que pareça, typeof NaN é Number!

Um ponto de atenção é que o JavaScript bem como outras linguagens utilizam o padrão Double Precision 64-bit binary format IEEE 754 para representação dos números e devemos tomar alguns cuidados.

Exemplo:

  0.1 + 0.2;
  > 0.30000000000000004

O "00000000000000004" é um residuo decorrente da operação binária. Veja mais aqui.

Para compreender e utilizar as principais funções de manipulação de números em JavaScript veja aqui e para compreender a Math Api veja aqui.

Synbol

Definido na ECMAScript 6, representa um tipo de dado cuja as instancias são imutáveis e únicas. Para mais informações veja aqui.

String

Strings são compostas por um conjunto de caracteres e representam um texto, são objetos imutaveis e sua declaração se dá a partir de aspas duplas ou aspas simples.

Para saber mais sobre os métodos que o Wrapper fornece veja aqui.

Object

Em JavaScript não temos classes, construtor ou métodos. Objetos são estruturas de dados dinâmicas de chave valor que comportam qualquer tipo de dados.

Construção literal de um objeto:

  var pessoa = {};

A qualquer momento podemos adicionar e remover propriedades de um determinado Objeto.

Exemplo:

  var pessoa = {
    nome: 'Renan'
  };

  pessoa.idade = 24;

  delete pessoa.nome

Propriedades de um determinado objeto podem ser outros objetos bem como funções.

Exemplo:

  var pessoa = {
    nome: 'Renan',
    endereco: {
      logradouro: 'José Inocencio de Camargo Lima Filho',
      numero: '223'
    },
    falar: function() {
      console.log('Falar o que?');
    }
  };

  pessoa.falar();

  > Falar o que?

Pelo fato dos objetos em JavaScript serem uma coleção de dados, podemos acessar seus valores através da notação de array.

Este tipo de notação se mostra muito útil quando precisamos acessar dinâmicamente as propriedades dos objetos.

Exemplo:

  var pessoa = {
    nome: 'Renan',
  }

  pessoa['idade'] = 24;

  for (var prop in pessoa) {
    console.log( pessoa[prop] );
  }

  > Renan
  > 24