Diferencia entre var, let y const en Javascript

Поделиться
HTML-код
  • Опубликовано: 2 фев 2025

Комментарии • 66

  • @joseestradadev
    @joseestradadev 5 лет назад +67

    var y let permiten definir variables mutables.
    const permite definir variables inmutables.
    var permite crear variables con alcance a su función más cercana.
    let permite definir variables con un alcance a su bloque más cercano.

    • @dontqsy5101
      @dontqsy5101 3 года назад +8

      Const no son variables inmutables. Y lo puedes comprobar con un for, asignandole a una variable const el valor del iterador, vas a ver como va cambiando de valor en cada iteración.
      Es una característica que tiene, ya que si le asignamos como valor una variable, y esa variable cambia de valor, la constante también lo hace, es decir, lo que es inmutable es su referencia, no su valor

    • @danielbillordo
      @danielbillordo 3 года назад +1

      @@dontqsy5101 Interesante. No lo sabía. Gracias.

  • @enle2002
    @enle2002 4 года назад +21

    Otra diferencia es que let no te deja usar el mismo nombre para declarar otra variable en ninguna otra parte del código, lo que puede evitar errores involuntarios.

  • @carlosandresramirez9808
    @carlosandresramirez9808 6 лет назад +3

    Excelente explicación don Marcos. Gracias por el video. Pude entender la diferencia de las 3 variables.

  • @marian_tsx
    @marian_tsx 2 года назад +4

    Si tenes:
    function doSomething () {
    console.log(a);
    var a = 5;
    }
    El hecho de que esto te muestre undefined, es porque la declaracion de la variable sube arriba de todo del scope de la function, pero no la inicializacion. Por ende, eso de arriba es equivalente para el lenguaje a hacer:
    function doSomething () {
    var a;
    console.log(a);
    a = 5;
    }
    Ahora, la principal diferencia con "let" o "const" es que no se inicializan a undefined, asi que te tira ese error de "not defined".
    Y algo para agregar, ojo con lo del scope de "var", es solo de bloques pero por ejemplo no funciona en closures. (funcion dentro de otra funcion)
    Por ultimo, no mucha gente agrega este detalle pero deberia ser un "must" para mi y tambien es preguntado en entrevistas, es una pregunta muy tricky que hacen, y es:
    Que pasa si defino una variable sin agregar el keyword "var, let o const" ? Es decir asi:
    `someVar = 5`
    Sin especificar nada mas?
    Bueno la respuesta es que ahi estas creando una variable global, no importa donde lo hagas; en una funcion, en cualquier tipo de bloque, en un closure, no importa... es basicamente lo mismo que hacer:
    window.someVar = 5;
    Por ende, `someVar` va a estar disponible en cualquier parte del script. Y mucho cuidado con esto, es peligroso, ya que al ser global, JAMAS va a ser limpiado por el garbage collector y va a ocupar memoria para siempre. Asi que por favor nunca lo hagan :D (Imaginen que meten largas estructuras de data de manera global)

  • @luisreyes3472
    @luisreyes3472 6 лет назад +2

    Gracias por compartir! Saludos desde Nicaragua!!

    • @vidamrr
      @vidamrr  5 лет назад

      Gracias Luis! saludos desde México

  • @jogre900
    @jogre900 3 года назад +3

    los datos dentro de una const si pueden ser mutados pero no reemplazados, ejemplo: si tienes un array declarado con const, a este le puedes aplicar metedos como push, concat, filter, join, split, etc. Lo que no puedes es cambiar su valor, de string a number o un objeto. Tampoco declarar una const sin asignarle valor para luego hacerlo, ya que esta sera undefined y eso no se podra mutar. Espero se entienda.

    • @alexanderalegre3133
      @alexanderalegre3133 3 года назад

      Gracias, me lo habian dicho en una entrevista y no me acordaba de como era la definición exacta

    • @marian_tsx
      @marian_tsx 2 года назад

      Exactamente. Yo de hecho todos mis objetos los declaro como "const" :D

  • @yanferaraque1051
    @yanferaraque1051 4 года назад +1

    excelente tutorial, muy explicativo y al fin pude sacarme la duda de esas 3.

  • @jerlandejoseph4350
    @jerlandejoseph4350 3 года назад

    Exelente me quedo bién claro.Yo estaba con una duda bién grande con const, let y var.

  • @enver9275
    @enver9275 3 года назад

    Muy buena explicación, te entendí clarísimo, gracias.

  • @davidalejandroballen4223
    @davidalejandroballen4223 3 года назад

    Muchas gracias Dios te bendiga.

  • @junner13
    @junner13 4 года назад +1

    Buen video bro gracias, me demore entendiendo en otros lados y eso que yo se programar, pero alfin entendi.

  • @monicaandreacastanoidarrag5250
    @monicaandreacastanoidarrag5250 2 года назад

    Excelente explicación

  • @isaacmartinez3596
    @isaacmartinez3596 4 года назад +1

    ¿Es mejor definir un let o un const cuando uno no se esta seguro de que va a cambiar?
    me explico, con la practica me he dado cuenta que el 90% de las veces no necesito una variable, si no que conque sea una constante me sirve y si algún día necesito que cambie la convierto en variable.
    ¿afecta en algo esto el rendimiento de la aplicación?
    ¿las constante ocupan mas o menos espacio de memoria o es lo mismo que una variable?
    ¿Es mejor usar una o la otra en cuanto rendimiento?

    • @marian_tsx
      @marian_tsx 2 года назад

      A nivel memoria usar let o const o var es lo mismo, pero entende que apenas se deja de usar esa variable, es limpiada por el garbage collector en tiempo de ejecucion. Dependiendo de donde la definas determina esto automaticamente. Pero ocupan lo mismo de memoria.
      Y con lo de la otra pregunta, no deberia pasar nada... si te parece que puede cambiar luego ponela como let... aunque si tenes un linter como eslint y bien configurado, te va a tirar un warning de que por favor cambies let por const si es que no va a cambiar en ningun momento... por temas de "Good Practices", es lo mas recomedable. Ya que para una persona que este leyendo tu codigo, apenas vea un "const" va a saber que eso se va a quedar fijo, ayuda a la lectura de codigo ajeno.

  • @santi100a
    @santi100a 3 года назад

    Las declaraciones let y var funcionan *exactamente* igual afuera de cualquier statement. Incluso si declaras una variable con var en un for loop, por ejemplo después del for no la vas a poder usar sin un error.

  • @dylandsteven6201
    @dylandsteven6201 3 года назад

    Gracias por el video , muy buena explicacion.

  • @OsomWay
    @OsomWay 2 года назад

    Muchas gracias, muy claro todo ✌🏽

  • @alvarollorente4618
    @alvarollorente4618 2 года назад

    Buenas podríais decirme que la fuente de texto que esta usando en el video en visual studio code? Muchas gracias.

  • @jbiraCR
    @jbiraCR 4 года назад

    Super la explicación felicidades!!!!!

  • @enriqueajin6016
    @enriqueajin6016 4 года назад

    Gracias. Me ayudó mucho

  • @johnattantibocha7841
    @johnattantibocha7841 4 года назад +1

    Yo tengo una pregunta, por que cuando escribo este ejercicio mi resultado es 3 veces 3
    for (var i = 0; i < 3; i++) {
    setTimeout(() => console.log(i), 1);
    }
    pero cuando cambio la variable var i por let mi resultado es 0,1,2?

    • @vidamrr
      @vidamrr  4 года назад +2

      Porque setTimeout funciona en otro contexto. Cuando ejecutas ese for primero se ejecuta ese y luego la función. Para ese momento el for ya terminó por eso te manda tres veces 3. Cuando usas Let javascript engloba cada iteración en un contexto junto con el setTimeout porque el alcance es a nivel de bloque, por eso sale la iteración correctamente. Por es es preferible usar let sobre var

  • @elprodigiogamer
    @elprodigiogamer 3 года назад

    Como se hace para sincronizar el visual studio code con la consola del navegador?

  • @brayancarabali
    @brayancarabali 6 лет назад +2

    Amigo excelente info.
    Me podrías decir que tema usas en VSCode

    • @vidamrr
      @vidamrr  5 лет назад

      ruclips.net/video/3gphzKzonRE/видео.html

  • @sandrocordova8730
    @sandrocordova8730 2 года назад

    muy buen video gracias

  • @sergior9807
    @sergior9807 3 года назад

    Excelente muy bueno gracias

  • @paulfrancis4126
    @paulfrancis4126 3 года назад

    Muy bien explicado

  • @savehunters4873
    @savehunters4873 4 года назад

    cual es ese tema de vscode

  • @musiccurrent9975
    @musiccurrent9975 4 года назад

    bello hermano entendi un 100% gracias

    • @vidamrr
      @vidamrr  4 года назад +1

      Qué bueno!! gracias por ver el video amigo

  • @gustavoolivierreyes2609
    @gustavoolivierreyes2609 3 года назад

    ¿como haces para que tu entorno de desarrollo y tu navegador se sincronicen??

    • @jebusderp3635
      @jebusderp3635 3 года назад

      Si utilizas vscode te recomiendo la extension live server, solo necesitas darle click derecho al documento html una vez instalada la extension y le das donde dice Open with live server.

  • @lsmm7268
    @lsmm7268 4 года назад

    No sé si entendí pero ¿var, let y const es como algún tipo de encapsulamiento?

    • @marian_tsx
      @marian_tsx 2 года назад

      What? No... es para definir una variable.

  • @cristianlobocaamano6521
    @cristianlobocaamano6521 3 года назад

    hola, me puedes decir los pasos de como probar mi código con go life de vs, asi en tiempo real como tu lo haces. gracias

  • @ivandinelli579
    @ivandinelli579 4 года назад

    Hola, como haces para que lo que escribes em vscode se refleje en la consola de google?

    • @angel-adlt
      @angel-adlt 4 года назад

      Tiene un archivo HTML abierto.

  • @olidyversan7847
    @olidyversan7847 3 года назад

    gracias me sacaste de una duda

  • @ReggetonOldSchool
    @ReggetonOldSchool 3 года назад

    alguna pagina que dicte curso gratuito y den certificado?

  • @mauriciosanchez2676
    @mauriciosanchez2676 3 года назад

    Se agradece.

  • @keilamartinez.7845
    @keilamartinez.7845 4 года назад

    Hola amigo tengo dos ejercicios que para ti seguro es un pasaje y quisiera saber si me puedes ayudar!!!

  • @joseluisgarcia-j.3826
    @joseluisgarcia-j.3826 3 года назад

    Mi impresión es que se explica todo
    sin orden y confuso.

  • @ederdcruzado8205
    @ederdcruzado8205 6 лет назад +1

    Excelente

  • @marcozsh
    @marcozsh 4 года назад

    Gracias!

  • @juanfeliperubiano215
    @juanfeliperubiano215 5 лет назад

    Gracias

  • @bot6731
    @bot6731 Год назад

    Es la tercera vez que escucho que usan el término variable para referirse a una constante.

    • @vidamrr
      @vidamrr  Год назад +1

      Vas a explotar cuando sepas que hasta la TC39 le dice así 😂😂😂

    • @bot6731
      @bot6731 Год назад

      ​@@vidamrr supongo que me sorprenderé aun más, llevo poco tiempo estudiando html, ccs y javascript por mi cuenta , en este ultimo lenguaje encontré cosas extrañas como cuando haces operaciones matemáticas con string en algunas cosas hace una conversión implicita en otros te tira error, entre otras cosas que no recuerdo ahora mismo y me sorprenden por ser un lenguaje muy popular, supongo que esa es la particularidad de este lenguaje.

  • @marcosgonzalvez5576
    @marcosgonzalvez5576 2 года назад

    god

  • @ulisesperezmunoz3584
    @ulisesperezmunoz3584 3 года назад

    var ya no se usa ajajaja

    • @vidamrr
      @vidamrr  3 года назад +1

      Los traspiladores como Babel transforman tu código moderno en uno más soportado por todos los navegadores, entonces aunque tú no uses var directamente en tu código probablemente tu código en producción si lo esté haciendo, y sino al menos te diría que las aplicaciones más grandes que usas en tu día a día lo hacen

  • @cdbarre
    @cdbarre Год назад

    Pésima explicación

    • @vidamrr
      @vidamrr  Год назад +1

      Gracias por tu comentario, qué fue lo que consideras que debería mejorar del video? Esto para que la próxima vez sea más entendible para ti

    • @cdbarre
      @cdbarre Год назад

      @@vidamrr Hola capo!. SIempre te sigo. Pero me sale el profe que llevo siempre y de profesión. Hay videos que oscurecen. Padadogía es lo que te falta, preparar mejor lo que vas a decir y obviamente el cómo!. El riesgo que corren los que dicen entender es que lo hayan aprendido MAL!. ... o no!. De lo que no hay dudas es de tus conocimientos. Te fui frontal porque a veces ayuda a mejorar.

  • @delcarmat
    @delcarmat 2 года назад

    gracias

  • @alejosalazar6830
    @alejosalazar6830 3 года назад

    Gracias!