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.
Este curso é voltado para você que está começando em programação e escolheu o JavaScript como linguagem.
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.
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!
Neste curso, continuaremos trabalhando no contexto de uma escola. Portanto, teremos listas de professores, listas de pessoas estudantes, etc.
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.
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.
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.
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.
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.
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.
Vamos agora praticar e entender como interagimos com essas propriedades.
Até mais!
No vídeo anterior, criamos nosso primeiro objeto chamado de objPessoa
, contendo os dados de uma pessoa estudante em nossa escola.
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.
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.
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'
}
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).
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?
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'
.
Vamos continuar trabalhando com objetos e entendendo como acessamos e manipulamos os dados.
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:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.