Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

482
Vistas
var vs const; ¿Por qué const está produciendo un error: error de sintaxis no detectado: el identificador 'userOne' ya ha sido declarado?

Cuando vars se reemplazan con const, el código produce un error. Ejecuto este código en la consola del navegador Chrome. Intenté inicializar la variable con let pero eso también produce un error. Revisé documentos sobre variables antes de hacer esta pregunta y sé que me estoy perdiendo algo crucial aquí.

 class User { constructor(email, name){ this.email = email; this.name = name; this.score = 0; } login(){ console.log(this.email, 'just logged in'); return this; } logout(){ console.log(this.email, 'just logged out'); return this; } updateScore(){ this.score++; console.log(this.email, 'score is now', this.score); return this; } } class Admin extends User { deleteUser(user){ users = users.filter(u => { return u.email != user.email }); } } //const userOne = new User ('ryu@ninjas.com', 'Ryu'); var userOne = new User('ryu@ninjas.com', 'Ryu'); var userTwo = new User('yoshi@mariokorp.com', 'Yoshi'); var admin = new Admin('shaun@ninjas.com', 'Shaun'); var users = [userOne, userTwo, admin]; //const users = [userOne, userTwo, admin]; admin.deleteUser(userTwo); console.log(users);
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Eso sucede porque tienes dos variables userOne con el mismo nombre.

Con let y const no puedes declarar más de una variable con el mismo nombre en el mismo ámbito, pero con var no reproducirá un error.

Además, debido a que está reevaluando el valor const de los usuarios, declárelo con let not const

 class User { constructor(email, name){ this.email = email; this.name = name; this.score = 0; } login(){ console.log(this.email, 'just logged in'); return this; } logout(){ console.log(this.email, 'just logged out'); return this; } updateScore(){ this.score++; console.log(this.email, 'score is now', this.score); return this; } } class Admin extends User { deleteUser(user){ users = users.filter(u => { return u.email != user.email }); } } const userOne = new User('ryu@ninjas.com', 'Ryu'); const userTwo = new User('yoshi@mariokorp.com', 'Yoshi'); const admin = new Admin('shaun@ninjas.com', 'Shaun'); let users = [userOne, userTwo, admin]; admin.deleteUser(userTwo); console.log(users)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda