roger-melo-treinamentos / curso-de-js-roger-melo

Repositório de informações do CJRM
491 stars 170 forks source link

Sintaxe do exercício de objetos #5568

Closed Ale557333 closed 1 year ago

Ale557333 commented 1 year ago

Etapa da aula

4

Nome da aula

Correção dos exercícios da aula 01 - Aula 02-01

Link da aula

https://app.nutror.com/v3/curso/a977a43d31cedcb6e7d064649ddd6c5436155aaf/aula/824585

Descreva a dúvida

@Roger-Melo

Boa tarde Roger. Eu fiquei com dúvida sobre a sintaxe do exercício 09, não entendo por que foi colocado esse return obj[type]. O que me confundiu na verdade foi esse [type] em colchetes.

09

const whatTypeIs = (type) => {
  let obj = {
    null: 'Seta, explicitamente, uma variável sem valor.',
    undefined: 'Representa um valor não-setado.',
    object: 'Arrays, Datas, Objetos literais, Funções, etc.'
  }

  return obj[type]
}

console.log(whatTypeIs('null'))

Uma outra dúvida boba que tenho é quando eu devo colocar o return das funções, percebo que alguns vão antes de fechar as chaves, umas vão depois.

Agradeço desde já!.

Roger-Melo commented 1 year ago

Olá @Ale557333!

Eu fiquei com dúvida sobre a sintaxe do exercício 09, não entendo por que foi colocado esse return obj[type]. O que me confundiu na verdade foi esse [type] em colchetes.

Dá uma olhada nessa e nessa resposta e se restar alguma dúvida, pode comentar aqui abaixo =)


Uma outra dúvida boba que tenho é quando eu devo colocar o return das funções, percebo que alguns vão antes de fechar as chaves, umas vão depois.

Não existe dúvida boba =)

Eu não sei se entendi bem a sua dúvida...

Vc usa o return sempre que precisa retornar um valor e parar a execução da função naquele ponto.

No exemplo que vc postou acima, o return está dentro do bloco da função. A } que está acima dele é o fechamento da chave do objeto.

O fechamento do bloco da função está abaixo do return.

Explica mais pra eu entender melhor a sua dúvida e te ajudar =)

Ale557333 commented 1 year ago

Oi Roger tudo bom? Muito obrigado, eu entendi perfeitamente agora tudo sobre a notação de ponto e o motivo de usar o de colchetes!!! Sobre o return, agora entendi um pouco quando você falou sobre o bloco, eu tinha me confundido.

Então nesse caso o return seria o cat.bestfriends.push(friend)?

const addFriends = (friend, cat) => {
  cat.bestfriends.push(friend)
}

addFriends('Leonardinho', cat)

console.log(cat.bestfriends)
Roger-Melo commented 1 year ago

Nesse último exemplo que vc postou não existe return (explicitamente).

Dentro da função, cat.bestfriends.push(friend) será executado e a função não vai retornar valor.

Por baixo dos panos ela vai retornar undefined, pq toda função que não retorna valor, retorna undefined. Mas nesse caso, isso não importa.

A função addFriends iria retornar valor se você usasse a palavra-chave return ou usasse o retorno implícito da arrow function:

const addFriends = (friend, cat) => {
  return cat.bestfriends.push(friend)
}

// ou

const addFriends = (friend, cat) => cat.bestfriends.push(friend)

Nos dois exemplos acima, ao ser invocada, a função addFriends irá executar cat.bestfriends.push(friend) e em seguida, irá retornar o valor que o push retornou =)

@Ale557333

Ale557333 commented 1 year ago

Obrigado Roger!

Roger-Melo commented 1 year ago

Por nada, meu caro. Vou fechar essa issue, mas sempre que tiver dúvida, fique à vontade para abrir uma nova =)