Reasignación y redeclaración
Clase 5 de 13 • Curso de Closures y Scope en JavaScript
Contenido del curso
Clase 5 de 13 • Curso de Closures y Scope en JavaScript
Contenido del curso
Edgardo Molina Gonzalez
Dario Paladines
Sebastian Flores Guasace
Alfredo Olmedo
Rafael Martínez Rodríguez
Jhon Edward Quipo Baron
Robert Alexander Machado Espinoza
Benjamin Nahuel Quevedo
Cristian Fernando Villca Gutierrez
José Isidro Torres Caldea
Idequel Bernabel Alvarez
Bryan Andres Vera Garcia
César Palma
Francisco Ponce
Sebastian Flores Guasace
Lider Simeon Falera Gonzales
Beder Danilo Casa Condori
Victor Miguel Barrera Peña
Cristian Ruben Pereyra
José Antonio Medina Sánchez
Oscar Barajas Tavares
Juan David Sánchez
Guadalupe Monge Barale
Jesús De Avila
Cesar Omar Vargas Gutierrez
Erika Nathaly Bernal Morales
Lucas Rojas
Brahyan Antonio Martinez Madera
Carlos Andrés Padilla Arroyo
Gabriela Mabel Mignone
Dario Paladines
Andres David Sanchez
Juan Fernando Yepes Muñoz
Guadalupe Monge Barale
Juan Gómez
Guadalupe Monge Barale
silfredo mario
Harold José Arguello
Woldev S.A.S
Francisco Ponce
Que buen curso actualizado, buena definición y calidad del vídeo y explicación. Ya no puedo esperar a la actualización del curso de asincronismo.
Igual, me quedé con algunas dudas con ese curso, por lo que estoy esperando que salga para revisarlo de nuevo
Creo que ese curso ya está actualizado
Muchas gracias.
👍
En el caso de los Arrays en JavaScript se le puede hacer push, declarandolo con const no solo por que se pueda y ya. En realidad Javascript meneja los Arrays Dinamicos, en otros lenguajes los arrays se pueden hacer estaticos y allí no se puede agregar. Esto tiene que ver con la capacidad de memoria asignada a los arrays, en el caso de los dinamicos la asignacion de memoria se dobla y en el caso de los estaticos, es solo la memoria que se le asigna desde el inicio. Esto lo aprendí en el curso de estructura de datos con Javascript que imparte Diego de granda.
Wow, esto lo había notado en un curso de JuanDC que hice ayer y me extrañaba que podías agregar elementos al array declarado con Const, super!
Mis notas:
var, es posible realizar solo una declaración, el valor de la variable será undefiend pero no arrojará ningún error.var, es posible re-declarar y re-asignar valores.let, es posible re-asignar pero no re-declarar.const es una de las mejores maneras de manipular variables puesto que tiene reglas mas robustas que var y letconst, no puedes re-asignar ni re-declarar tipos de datos primitivos.const, puedes re-asignar arreglos y objetos pero no re-declararlos.const, tampoco puedes solo declararla, necesita una asignación.Como la palabra reservada lo indica, const hace referencia a un valor que no va a cambiar (o que no debería cambiar), por lo que al intentar reasignar el valor que tenga una variable de tipo constante vamos tener un error. 💥 . const se usa mucho para declarar funciones u objetos (una función también es considerada un objeto dentro de JavaScript), ya que los objetos pueden almacenar más de un único valor, a diferencia de los tipos primitivos (int, float, string...). Los objetos pueden almacenar muchos valores, así que solo se guarda la referencia en memoria que los almacena (una dirección que no cambia) y con esta se accede al valor o valores que ahí residen. . Es como si una variable de tipo primitivo fuese una caja pequeña donde solo te cabe una cosa, mientras que un objeto es como un escaparate o armario (no sé cómo le llames), donde puedes guardar varias cosas. . Cuando usamos const para declarar una variable primitiva imagina que estamos creando un molde específico para guardar solo ese valor, que cualquier otra cosa que intentemos meter ahí no se va a poder porque no cabe. Bien, cuando usamos const para un objeto, el comportamiento se ve un poco diferente, ya que como ahí podemos meter varias cosas es más fácil apuntar a una ubicación que no cambie y ahí meter lo que quepa. 😅 . Vayamos a un ejemplo: Tenemos una caja pequeña con un diseño único, donde solo cabe tu reloj de edición limitada. También tienes un armario grande donde guardas ropa, perfumes, zapatos, e inclusive una caja que contenga un reloj adentro. Ahora, vamos a suponer que le pedimos el favor a alguien de traernos el reloj de edición limitada, podemos expresar la ubicación del reloj diciendo que está en su caja. Ahora para que me busque algo que está en el armario, supongamos el perfume, voy a decir de forma general que está en el armario, que en ese objeto más grande busque lo que yo le pedí, y bueno, si soy organizado y tengo la decencia de ser más específico puedo decir que está en la gaveta del armario que tengo marcada como número 2 y así conseguir lo que necesitaba. ✌🏻 Dentro del armario yo puedo meter, cambiar y quitar cosas, eso no cambiará la ubicación del armario, ya que sigue siendo constante. 😉
Muy buena analogía! 🤓
Que gran explicación, Crack
la regla de tontos a partir de ES6 es declara cualquier variable con const y si te da problemas redeclarala con let. Para iniciar está regla funciona muy bien. Luego con la practica uno sabe cuando debe ir let o const.
La súper vieja confiable jajaja
O simplemente declarar con const a aquellas variables que sabemos que no van a cambiar
Sobre "const" con Arrays.
interesante
la verdad es molesta la nueva intro de platzi, me gustaba más la anterior, de sólo sonido, esta te deja sordo
¿Qué extensión usa Oscar para que muestren las alertas de color rojo en los posibles errores?
Es la extensión quokka.js
Utilizo: Error Lens
Algo similar a lo que pasa con los arreglos también ocurre con los objetos. Por ejemplo, podemos inicializar un objeto de la siguiente forma:
const person = {};
E ir mutando sus propiedades sin problema alguno:
person.name = "David"; person.username = "d4vsanchez"; console.log(`${person.name} (@${person.username})`); person.name = "Someone else"; person.username = "someone"; console.log(`${person.name} (@${person.username})`);
Si ejecutamos esto obtendremos:
David (@d4vsanchez) Someone else (@someone)
Por lo que debemos recordar que el const no creará variables inmutables sino que creará una "atadura" inmutable. Una frase que me ayudó a entender ese concepto es: "const won't create immutable variables, const will create immutable bindings".
Tip extra: Si quieren crear un objeto inmutable, pueden pasarlo por el método Object.freeze.
const person = { name: "David", username: "d4vsanchez" }; Object.freeze(person); person.name = "Someone else"; person.username = "someone"; console.log(`${person.name} (@${person.username})`); // David (@d4vsanchez)
Muchas gracias. Muy clarito
¡Excelente dato! Gracias
Se introdujeron en ECMAScript 6 y tienen las siguientes características:
var:
let:
const:
En conclusión, gana const.
Me encanta la actitud del profe, la forma tan profesional de explicar y su metodología. Realmente vine aquí porque quiero profundizar sobre el tema de Scope y variables, y estoy muy a gusto porque he entendido paso a paso. Graciaaaaaas!! 💚😀
La extension que usa para que se vea el error en la misma linea es Error Lens, este es el link
En otros cursos, no recuerdo si en platzi pero si cuando veía algunos videos de youtube no hablaban de asignación sino de inicialización. Me queda la duda de cual sería la diferencia o cual debe utilizarse. Yo personalmente me iré por la palabra asignación. Sin embargo, me queda esa duda.
Según tengo entendido inicializar una variable es la asignación de un valor inicial a dicha variable.
Si no estoy mal en el curso básico de Javascript se adopta el término de inicialización, pero según entiendo la asignación es igual que la inicialización, por lo que son dos maneras de llamar a lo mismo.
Error Lens
Me parece demasiado cool ver que los comentarios no son de hace tanto tiempo como en otros cursos que eran de hace 2 años o mas, da una sensación como de que el curso esta mas vivo. Y no es que en los otros no hubiera comentarios nuevos, pero los mas destacados eran antiguos y no se, es diferente la sensación. Tekiero mucho comunidad de Platzi <3
Me pasa lo mismo.
Cómo hacer inmutables los atributos de los objetos y arreglos?
const fruta = { name: "banano", apodo: "guineo" } Object.freeze(fruta);
Si usas object.feeze(fruta), lo haces inmutable.
No se puede reasignar otro valor a una contante.
¿Cuál extensión tiene el profe que le muestra los errores en el editor sin necesidad de abrir la consola?
Me parece que se llama Error Lens