Alura > Cursos de Programação > Cursos de Node.JS > Conteúdos de Node.JS > Primeiras aulas do curso JavaScript: conhecendo objetos

JavaScript: conhecendo objetos

O que são objetos - Apresentação

Boas-vindas ao curso de Fundamentos do JavaScript para Back-end focado em Objetos!

Me chamo Ju Amoasei e serei a sua instrutora ao longo deste curso.

Audiodescrição: Ju Amoasei se declara como uma mulher branca de cabelos curtos pintados de azul. Veste uma camiseta preta com o logo da Alura e usa óculos de grau com aros vermelhos. No momento do vídeo, se encontra nos estúdios da Alura.

Para quem é esse curso?

Este curso é voltado para você que está começando em programação e escolheu o JavaScript como linguagem.

Pré-requisitos para acompanhar o curso

Para que consigam aproveitar melhor o curso, recomendamos fortemente que já tenham feito os cursos anteriores dessa formação. O primeiro de Fundamentos do JavaScript voltado para tipos de dados e funções, e o segundo voltado para Arrays.

Neste curso não vamos abordar nada que é relacionado a front-end, embora alguns dos conteúdos possam ser cruzados ou relacionados.

O que aprenderemos?

Neste curso, exploraremos os conceitos fundamentais de objetos, compreendendo sua definição, a importância que têm e a estrutura básica (sintaxe) em JavaScript.

Além disso, aprenderemos a manipular objetos através de métodos específicos, entenderemos o formato de dados JSON e sua conexão com os objetos em JavaScript. Para consolidar o aprendizado, iremos aplicar esses conhecimentos em casos reais e práticos de projeto.

Aproveitem os recursos da plataforma! Além dos vídeos, temos o apoio do fórum e a comunidade no Discord, que está pronta e aberta para receber a sua participação e também as suas dúvidas.

Então, vamos estudar!

O que são objetos - O que são objetos

Neste curso, continuaremos trabalhando no contexto de uma escola. Portanto, teremos listas de professores, listas de pessoas estudantes, etc.

Compreendendo o Curso: O Estudo de Objetos

Antes de iniciarmos, é importante compreender o que abordaremos neste curso, que é o estudo de objetos. Conforme indicado pelo título, iremos criar um arquivo denominado objeto.js no Visual Studio Code (VSC) e explorar essa estrutura.

Para isso, do lado esquerdo clicamos em "New File", digitamos "objeto.js" e posteriormente teclamos "Enter".

Aprendemos anteriormente, em outros cursos desta formação, uma estrutura de dados que chamamos de array (lista ordenada). Agora, precisamos trabalhar com outro tipo de estrutura de dados e veremos as diferenças entre eles.

Iniciando com Arrays: Estruturas de Dados Básicas

Suponha que queremos armazenar todos os números de CPF das pessoas estudantes da nossa escola. Podemos criar uma constante chamada listaCPFs e, entre colchetes, passar todas essas strings de CPF. O CPF é uma sequência numérica de 11 dígitos.

objeto.js

const listaCPFs = ['12312312312', '123234435345'];

O array funciona muito bem para este caso, pois não temos apenas um tipo de dado, temos uma descrição de um dado, um CPF, por exemplo.

Transição para Estruturas Mais Complexas

Entretanto, imagine que precisamos armazenar mais informações sobre uma pessoa estudante além do CPF. Como poderíamos fazer isso utilizando um array? Uma abordagem seria criar uma constante chamada infosPessoa e começar a listar esses dados. O primeiro conjunto de informações seria o nome, precisamos indicar que esse dado é um nome.

Assim, nós iniciamos uma string (aspas simples), escrevemos o nome e, em seguida, passamos o nome da pessoa, como por exemplo, José Silva. Além disso, a pessoa estudante pode ter uma idade associada. Dessa forma, adicionamos outra string, 'idade', e então fornecemos a idade da pessoa estudante, como por exemplo, 32 anos.

objeto.js

const listaCPFs = ['12312312312', '123234435345'];

const infosPessoa = ['nome', 'José Silva', 'idade', 32];

Entretanto, já se percebe que o array não é ideal para armazenar este tipo específico de estrutura de dados. Se quisermos, por exemplo, acessar o nome do estudante, teríamos que usar console.log() no índice [1] do array, assumindo que José Silva está nessa posição.

objeto.js

const listaCPFs = ['12312312312', '123234435345'];

const infosPessoa = ['nome', 'José Silva', 'idade', 32];
console.log(infosPessoa[1]);

Podemos até realizar testes no terminal para verificar se isso funciona. Para isso, clicamos em "Terminal > New Terminal" na parte superior esquerda. O terminal será exibido na parte inferior do VSCode (garanta que a pasta que está rodando é a correta) e usamos o comando node:

node objeto.js

Obtemos como retorno:

José Silva

Contudo, é evidente que o array não é a melhor escolha neste cenário, já que os dados como nome, idade, CPF e descrição são armazenados sequencialmente, sem um indicador lógico de qual é qual.

Introdução a Objetos no JavaScript

Se pegarmos essas informações e passarmos para uma estrutura que chamamos de objeto, como ficaria? Vamos criar outra constante chamada objPessoa e usar o símbolo de igual para atribuir uma variável e abrir chaves, não colchetes.

objeto.js

const listaCPFs = ['12312312312', '123234435345'];

const infosPessoa = ['nome', 'José Silva', 'idade', 32];
console.log(infosPessoa[1]);

const objPessoa = {

}

Dentro destas chaves, vamos fornecer o nome e o CPF da seguinte forma: primeiro, o nome, que pode ser simplesmente uma variável, não necessariamente uma string. Utilizamos dois pontos e, em seguida, uma string para indicar o nome da pessoa, como por exemplo, "José Silva": nome: 'José Silva'.

Após quebrar a linha (não obrigatório, mas utilizado para uma melhor formatação), passaremos a idade, representada por um número, como por exemplo, 32. Além disso, podemos incluir outro dado, o CPF, seguido por uma sequência numérica de 11 dígitos qualquer. Por exemplo, para representar a turma da pessoa, utilizaremos o dado chamado "turma", que será uma string, como "JavaScript", indicando que esta pessoa é estudante do curso de JavaScript.

objeto.js

const listaCPFs = ['12312312312', '123234435345'];

const infosPessoa = ['nome', 'José Silva', 'idade', 32];
console.log(infosPessoa[1]);

const objPessoa = {
  nome: 'José Silva',
  idade: 32,
  cpf: '12312312312',
  turma: 'JavaScript'
}

Agora, podemos observar tanto o array quanto o objeto, e perceber que a estrutura de objeto funciona muito melhor quando precisamos armazenar grupos mais complexos de informações.

O array funciona muito bem quando desejamos armazenar grupos de um único tipo de informação, seja string, seja número, por exemplo, listas de CPFs, ou mesmo listas de nomes. Vamos aprender como trabalhar com casos um pouco mais complexos de array ainda neste curso.

Objetos Como Representação da Realidade

No entanto, ao tentarmos representar a realidade, como por exemplo, descrever uma pessoa, um usuário ou um computador, os quais consistem em diversos conjuntos de informações como nome, idade, CPF, endereço, celular, entre outros, utilizamos uma estrutura de dados chamada objeto. O principal conceito por trás de um objeto é justamente tentar refletir, de maneira abstrata, as entidades da vida real.

Próximos Passos

Vamos agora praticar e entender como interagimos com essas propriedades.

Até mais!

O que são objetos - Acessando objetos

No vídeo anterior, criamos nosso primeiro objeto chamado de objPessoa, contendo os dados de uma pessoa estudante em nossa escola.

Entendendo a estrutura do objeto

Para entender melhor a estrutura de um objeto e como interagir com ele, vamos criar um novo arquivo, chamado estrutura_objeto.js.

Copiamos a variável objPessoa para o novo arquivo e a renomearemos para estudante, que é mais adequado ao contexto em que estamos trabalhando.

estrutura-objeto.js

const estudante = {
  nome: 'José Silva',
  idade: 32,
  cpf: '12312312312',
  turma: 'JavaScript'
}

O objeto estudante contém nome, idade, CPF e turma.

Quando trabalhamos com arrays, praticamos várias formas de acessá-los, seja acessando diretamente o índice desejado ou fazendo um loop (laço de repetição) para buscar o que queríamos dentro do array.

Acessando partes do objeto

Como, então, acessamos cada parte de um objeto? Por exemplo, como acessamos apenas o nome ou apenas a idade?

Se executarmos um console.log() em estudante, o console retornará todo o objeto, com todas as propriedades.

estrutura-objeto.js

const estudante = {
  nome: 'José Silva',
  idade: 32,
  cpf: '12312312312',
  turma: 'JavaScript'
}

console.log(estudante);

Para rodar o código acima use o comando node estrutura-objeto.js conforme aprendido em cursos anteriores

node estrutura-objeto.js

Obtemos como retorno:

{
  nome: 'José Silva',
  idade: 32,
  cpf: '12312312312',
  turma: 'JavaScript'
}

Usando a notação de ponto em objetos

E se desejarmos apenas o nome da pessoa? No caso de objetos, utilizamos a chamada notação de ponto para acessar um objeto e cada uma das suas propriedades. Por exemplo, para acessar o nome, fazemos console.log(estudante.nome).

estrutura-objeto.js

const estudante = {
  nome: 'José Silva',
  idade: 32,
  cpf: '12312312312',
  turma: 'JavaScript'
}

console.log(estudante.nome);

Através da notação de ponto, acessamos a variável que guarda nosso objeto (estudante) e, em seguida, a propriedade desse objeto (nome). Podemos observar isso acessando o terminal e rodando o comando node estrutura-objeto.js.

Obtemos como retorno:

José Silva

Um objeto é composto por propriedades que são pares de chave e valor. A chave nome tem o valor José Silva, a chave idade tem o valor 32, a chave CPF tem o valor 12312312312, e assim por diante.

O objeto é sempre composto de conjuntos de chave e valor

Essa informação é importante de entender: a estrutura de um objeto. Através das chaves acessamos o valor de cada uma dessas propriedades (string, número, etc).

Manipulando as informações do objeto

Com esses dados, como o nome, podemos manipular essas informações. Por exemplo, vamos executar outro console.log(), passando a string dentro de uma template string. Podemos dizer que "o nome de estudante é ${estudante.nome}".

estrutura-objeto.js

const estudante = {
  nome: 'José Silva',
  idade: 32,
  cpf: '12312312312',
  turma: 'JavaScript'
}

console.log(estudante.nome);
console.log(`o nome de estudante é ${estudante.nome}`);

Executamos o código com o comando node e obtemos:

José Silva

O nome de estudante é José Silva

Com isso, acessamos a propriedade (string) e conseguimos juntar essas informações em um template string e exibir a frase no console.

O José Silva é uma string, então, o que mais conseguimos fazer com strings a partir do momento que acessamos a propriedade?

Utilizando substring

Vamos executar um terceiro console.log() e passar, por exemplo, "os três primeiros números do CPF são ${estudante.cpf.substring()}".

Pelo fato do CPF ser uma string, podemos usar métodos de string que aprendemos nos cursos anteriores. Um deles é o substring(). Por isso, inserimos ${estudante.cpf} (acessamos o dado de cpf), inserimos um ponto e na sequência colocamos substring() para receber os três primeiros dígitos.

estrutura-objeto.js

const estudante = {
  nome: 'José Silva',
  idade: 32,
  cpf: '12312312312',
  turma: 'JavaScript'
}

console.log(estudante.nome);
console.log(`o nome de estudante é ${estudante.nome}`);
console.log(`os três primeiros números do CPF são ${estudante.cpf.substring()}`);

O método substring nos permite capturar apenas uma parte da string, passando um índice de início e um índice de final. Lembrando que string pode ser um array de caracteres. No caso, desejamos os três primeiros números do CPF. Para tal, passamos 0, 3, sendo o índice de início e o índice final.

estrutura-objeto.js

const estudante = {
  nome: 'José Silva',
  idade: 32,
  cpf: '12312312312',
  turma: 'JavaScript'
}

console.log(estudante.nome);
console.log(`o nome de estudante é ${estudante.nome}`);
console.log(`os três primeiros números do CPF são ${estudante.cpf.substring(0,3)}`);

Testamos rodando o comando node e obtemos:

José Silva

O nome de estudante é José Silva

Os três primeiros números do CPF são 123

Este método funciona porque estamos acessando uma string. Se, por exemplo, removemos as aspas do CPF, transformando-o em um número (cpf: 12312312312), receberemos um erro no console, porque substring é um método do JavaScript que só consegue ser utilizado para strings.

Ao executarmos sem aspas simples, obtemos:

TypeError: estudante.cpf.substring is not a function

Isso mostra que, a partir do momento que acessamos o valor de um objeto através da notação de ponto, conseguimos fazer qualquer operação com esse dado. Para strings, temos operações de strings; para números, temos operações de números.

Neste momento do vídeo, a instrutora insere novamente as aspas simples: cpf: '12312312312'.

Conclusão

Vamos continuar trabalhando com objetos e entendendo como acessamos e manipulamos os dados.

Sobre o curso JavaScript: conhecendo objetos

O curso JavaScript: conhecendo objetos possui 145 minutos de vídeos, em um total de 64 atividades. Gostou? Conheça nossos outros cursos de Node.JS em Programação, ou leia nossos artigos de Programação.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Node.JS acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas