Header Ads Widget

Ticker

6/recent/ticker-posts

Constante en JavaScript: const frente a Object.freeze ()

 En este tutorial, veremos la diferencia entre constObject.freeze()en JavaScript.

Los objetos se usan comúnmente en JavaScript para contener valores complejos y tipos definidos por el usuario.

La constpalabra clave se usa como modificador antes de una variable para convertirla en una constante, es decir, su valor no se puede cambiar una vez que se asigna al intilar la variable. Por ejemplo:

const foo = 'bar';

Si intenta actualizar el valor de la foovariable, obtendrá un mensajeTypeError con Asignación a variable constante . Esta es una captura de pantalla de Google DevTools:

JavaScript 'const frente a Object.freeze ()

Nota : letconstestán incluidos en ES6 como una nueva forma de declarar variables. constlas variables solo se pueden asignar durante su declaración.

Tenga en cuenta también que el valor en sí de una constvariable es mutable (se puede cambiar) pero el símbolo que hace referencia al valor es lo que en realidad no se puede cambiar en un punto posterior para hacer referencia a un valor diferente.

La constpalabra clave tiene un alcance de bloque, es decir, no puede acceder a ella fuera del bloque que la contiene inmediatamente y sigue la regla de Zona muerta temporal que establece que una variable no se puede usar antes de su declaración.

Veamos este ejemplo de código y cómo podemos leerlo:

if (true) {
    const foo = 'bar';
}

Con solo mirar este fragmento de código y gracias a la constpalabra clave, podemos sacar muchas conclusiones:

  • No podemos acceder fooantes de la declaración de acuerdo con la regla de Zona Muerta Temporal,
  • No podemos cambiar el foosímbolo para hacer referencia a otro valor,
  • No podemos acceder foofuera del ifbloque de contención .

¡Esto hace que nuestro código sea más legible y también más seguro!

Para obtener más información, consulte ¡Usemos constHe aquí por qué .

¿Qué tal object.freeze()?

Dado que la constpalabra clave hace que la referencia sea constante pero no el valor en sí, podemos actualizar los valores para matrices y objetos sin obtener TypeErrorPor ejemplo:

const foo = {
    value : 'bar'
};

foo.value = 'baaar';
console.log(foo.value);

Esta es una captura de pantalla del código que se ejecuta en la consola:

JS const en el objeto

Entonces, como ves, podemos mutar el valor del objeto.

¿Cómo hacer un objeto constante en JavaScript?

Simplemente usamos el Object.freeze()método. Apliquémoslo a nuestro ejemplo anterior:

const foo = {
    value : 'bar'
};

Object.freeze(foo); 
foo.value = 'baaar';
console.log(foo.value);

Objeto de JavaScript.freeze ()

Después de aplicar el Object.freeze()método a foo, no podremos mutar su valor pero no arroja ningún error, solo evita silenciosamente la mutación del valor.

Conclusión

En este tutorial rápido, hemos visto cómo crear variables y objetos constantes en JavaScript gracias a constObject.freeze()introducido en ES6.

Publicar un comentario

0 Comentarios