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

314
Vistas
¿El objeto es mutable en javascript? En caso afirmativo, ¿por qué el objeto de la cadena es inmutable entonces?

En javascript , solo los objetos y las matrices son mutables y los restantes son de tipo primitivo que son inmutables . Sin embargo, si creamos un objeto de cadena, entonces no se puede mutar. ¿porqué es eso?

 var a = new String("abc") a.toUpperCase(); console.log(a) /*wont print "ABC" and prints an object with String:abc. Concludes that string object is immutable.*/
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

En general, sí, los objetos son mutables.

La razón por la que los "objetos de cadena", creados con una new String , no son mutables es que los objetos de cadena dan como resultado objetos que tienen una propiedad StringData interna :

Establezca S.[[StringData]] en valor.

Ese StringData es lo que se recupera cuando el objeto de cadena se vuelve a convertir en un primitivo.

Si el intérprete proporcionara una forma de cambiar esta ranura interna de StringData , entonces este tipo de objetos serían efectivamente mutables. (Del mismo modo, Set.add cambia la ranura interna de un conjunto, y existe el mismo tipo de mecanismo para muchos otros objetos en JS: un método expuesto cambia los valores contenidos en las ranuras internas).

Pero

 a.toUpperCase();

solo no haría nada: toUpperCase devuelve una nueva cadena. No existen métodos (en implementaciones estándar) que puedan alterar la ranura interna StringData de un objeto de cadena; todo lo que puede hacer es crear un nuevo objeto de cadena con un StringData diferente.

También podría considerar seriamente no usar objetos de cadena en absoluto.

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