Estudiante Platzi
PreguntaHola.
tengo este tema: estoy instanciando un nuevo objeto asi:
**const human = new Object(),
name = ‘Carlos’,
lastName = ‘Sanchez’,
gender = ‘male’,
age = 37**
despues consulto el tipo y me traigo la propiedad asi:
**console.log(typeof(human));
console.log(`${ name }``);** OJO: aqui coloque una backtick adicional o el editor no me lo iba a mostrar.
Resultando en esto:
*object
Carlos*
Mi pregunta es: ¿que esta ocurriendo cuando quiero iterar en las propiedades de este objeto, que no me devuelve nada a la salida?
Estoy haciendo esto:
**for (const property in human) {
console.log(
${property}:${human[property]}
}
Mi gran duda es derivada a que tengo otro objeto, en la cual si me esta iterando:
mujer1 = { nombre: ‘Petra Hanks’, edad: 46, complexion: ‘delgada’, estatura: ‘alta’, raza: ‘caucasica’ }
for (const property in mujer1) {
console.log(${property}:${mujer1[property]}
);
}
${property}:${mujer1[property]}
nombre:Petra Hanks edad:46 complexion:delgada estatura:alta raza:caucasica

Jonathan Garcia Centurion
buenas, el error es que para crear un objeto se hace de la siguiente forma
puedes usar var o let en esta ocasión tendrán el mismo resultado
var miObjeto = { name: 'juan', apellido: 'pepito', estatura: 'alta', edad: 28 }
teniendo eso claro es por ese motivo el que puedes iterar en el segundo intento que realizaste y para aclarar las dudas que tenias en un inicio. 1º - te salio que human era un objeto por que tu se lo indicaste declarandole el valor de objeto.
const human = new Object(), name = ‘Carlos’, // esto de aqui no funciona como parte del objeto de human. lastName = ‘Sanchez’, gender = ‘male’, age = 37 console.log(typeof(human));
2º - cuando llamas a name no era necesario que pusieras el valor de pesos mas las llaves si es que no ibas agregar algo de texto
console.log(name) // esto te hubiera servido console.log(`Mi nombre es ${name}`) /* devuelve = Mi nombre es Carlos cuando vas agregar texto la segunda opción es la indicada*/
y el motivo por el que te da el valor de carlos a pesar de que no la inicializaste es por que javascript lo hizo por ti al ver que llamabas a una variable que no estaba inicializada.
detalle importante es que veas como es el cuerpo de un objeto al de una variable.
var miObjeto = { name: 'sara', // en ves de poner = en un objeto se pone : } var firstName = 'ana'; // aquí si se usa el = ya que inicializas un variable y la declaras.
espero te sirva.