Objetos em JavaScript podem ser entendidos como representações de objetos na vida real, pois possuem características (propriedade) e são capazes de realizar ações (métodos).
Por exemplo
Objeto: usuário de uma aplicação web Propriedade: email, nome de usuario e idade Ações: método de login, método de logout
Objetos possibilitam criar estruturas de dados que representam certos elementos do nosso código ou das nossas aplicações web. O JavaScript também tem alguns objetos acoplados nele (por exemplo,
date
oumath
). Para criar objetos eles podem ser feitos de diversas formas.
Para criar um objeto literal, utilizamos chaves, e dentro dessas chaves temos propriedades.
let user = {
name: 'João',
age: 31,
email: '[email protected]'
blogPosts: ['Meu primeiro post', 'My segundo post']
}
Para acessar as propriedades, podemos utilizar a notação de ponto ou colchetes
user.name
// João
user[name]
// João
Para modificar valores, basta subscrever as propriedades
user.name = 'José'
user[name] = 'Juan'
Para adicionar ações (métodos), é criada uma propriedade que armazena uma função. Para acessar a propriedade é preciso invocar esta propriedade com ()
(tal qual qualquer outra função).
let user = {
login: function() {
console.log('Usuário logado')
}
}
user.login()
Armazenar objetos dentro de arrays é algo possível e comum. É provável quando obtendo dados de uma API ou banco de dados, que siga o formato de array com objetos.
let user = {
name: 'João',
blogPosts: [
{ title: 'Sopa de Abóbora', likes: 30 },
{ title: '4 receitas de purê de batata', likes: 45 }
],
logBlogPosts () {
this.blogPosts.forEach(post => {
console.log(post.title, post.likes)
})
}
}
user.logBlogPosts()
// Sopa de Abóbora 30
// 4 receitas de purê de batata 45
O Objeto Math é um dos vários objetos embutidos da linguagem, que já possui uma série de métodos e propriedades.
Exemplos de propriedade
console.log(Math.PI)
console.log(Math.E)
// 3.141592653589793
// 2.718281828459045
Exemplos de métodos
Para arredondar o número utilizando a forma padrão ( se a casa decimal for até .4, arendonda para baixo, se a casa decimal for .5 e maior arrendonda para cima) podemos usar Math.round()
:
const roundNumber = 7.7
console.log(Math.round(roundNumber))
// 8
Para arredondar o número para baixo podemos usar Math.floor()
const roundDown = 5.9
console.log(Math.floor(roundDown))
// 5
Para arredondar o número para cima podemos usar Math.ceil()
:
const roundUp = 3.2
console.log(Math.ceil(roundUp))
// 4
Para remover a parte decimal e retornar o numero inteiro podemos usar Math.trunc()
:
const roundInteger = 8.8
console.log(Math.trunc(roundInteger))
// 8
Para gerar um número aleatório entre 0 e 1 podemos usar Math.random()
:
const randomNumber = Math.random()
Sintaxe do "Destructuring Assignment"
Destructuring Assignment é uma expressão que possibilita atribuir, para variáveis, cópias de items de um array ou valores de um objeto.
const obj = {
prop1: a,
prop2: b,
prop3: c
}
const { prop1, prop2 } = obj
prop1 // a
prop2 // b
Mais informações nessa thread.