ES6 ha incorporado varias características y métodos nuevos a JavaScript desde su lanzamiento. Entre estas nuevas funciones se encuentran el método Object.freeze() y const . A veces, las personas se confunden entre el método Object.freeze() y const , pero Object.freeze() y const son completamente diferentes. En este artículo explicaremos las diferencias entre estos dos.
const: la palabra clave const crea una referencia de solo lectura a un valor. Las variables creadas por la palabra clave const son inmutables. En otras palabras, no puede reasignarlos a diferentes valores. Intentar reasignar una variable constante dará como resultado un TypeError .
- Ejemplo 1:
Javascript
<script> let myName = "Geeksforgeeks" console.log(myName) // Uncaught TypeError myName = "gfg" </script>
La palabra clave const garantiza que la variable creada sea de solo lectura. Pero eso no significa que el valor real al que hace referencia la variable const sea inmutable. Aunque la variable persona es constante. Sin embargo, puede cambiar el valor de su propiedad. Pero no puede reasignar un valor diferente a la constante de persona.
- Ejemplo 2:
Javascript
<script> const person = { name: "Geeksforgeeks" }; // No TypeError person.name = "gfg"; console.log(person.name); </script>
Método Object.freeze(): si desea que el valor del objeto persona sea inmutable, debe congelarlo utilizando el método Object.freeze() .
- Ejemplo 1:
Javascript
<script> const person = Object.freeze({name: "Geeksforgeeks"}); // TypeError in strict mode //in non-strict mode it prints "Geeksforgeeks" person.name = "gfg"; </script>
El método Object.freeze() es superficial, lo que significa que puede congelar las propiedades del objeto, no los objetos a los que hacen referencia las propiedades.
- Ejemplo 2:
Javascript
<script> const person = Object.freeze({ name: 'Geeksforgeeks', address: { city:"Noida" } }); </script>
- Pero el objeto person.address no es inmutable, puede agregar una nueva propiedad al objeto person.address de la siguiente manera:
// No TypeError person.address.country = "India";
Conclusión:
- const evita la reasignación .
- Object.freeze() evita la mutabilidad .
Objeto.congelar() | constante | |
1. | El método Object freeze() ayuda a evitar que se cambien las propiedades existentes | const es una palabra clave que se introdujo en ES6 (2015). |
2. |
Su sintaxis es -: Objeto.congelar(objeto) |
Es útil si queremos que alguna variable no se declare dos veces. |
3. | Toma un parámetro como un objeto. |
Por ejemplo -: constante a = 10; |
4. | Su valor de retorno es un objeto. | Si definimos una variable con const entonces no se puede reasignar. |
5. | También ayuda a evitar que se agreguen nuevas propiedades al objeto específico. | Si definimos una variable con const entonces su alcance está bloqueado. |