• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Estadística
      • Calculadora del Tamaño Muestral en Encuestas
      • Calculadora de estadísticos descriptivos
      • Test de normalidad
      • Calculadora de contrastes de hipotesis
      • Calculadora de tamano del efecto
      • Simulador de Regresión Lineal con Ruido
      • Visualizador de PCA
      • Visualizador de Series Temporales
      • Simulador de Regresión Logística
      • Simulador de K-Means
      • Simulador de DBSCAN
      • Detector de la Ley de Benford
    • Probabilidad
      • Calculadora de Probabilidad de Distribuciones
      • Calculadora de Probabilidades de Lotería
      • Simulador del Problema de Monty Hall
      • Simulador de la Estrategia Martingala
    • Finanzas
      • Calculadora de Préstamos e Hipotecas
      • Conversor TIN ↔ TAE
      • Calculadora DCA con ajuste por inflación
      • Calculadora XIRR con Flujos Irregulares
      • Simulador FIRE (Financial Independence, Retire Early)
    • Negocios
      • CLV
      • Scoring
    • Herramientas
      • Formateador / Minificador de JSON
      • Conversor CSV ↔ JSON
      • Comparador y Formateador de Texto y JSON
      • Formateador y Tester de Expresiones Regulares
      • Inspector de JWT
      • Generador y verificador de hashes
      • Codificador / Decodificador Base64 y URL
      • Conversor de bases numericas
      • Conversor de Timestamp Unix
      • Conversor de colores
      • Generador de UUIDs
    • Juegos
      • Tres en Raya
      • Nim con Q-Learning
    • Más
      • Método D’Hondt
      • Generador de Contraseñas Seguras
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • IA Generativa
  • Python
  • Pandas
  • NumPy
  • R
  • Excel

Diferencias entre var y let en JavaScript

junio 10, 2019 Por Daniel Rodríguez 1 comentario
Tiempo de lectura: 4 minutos

El JavaScript la palabra reservada utilizada tradicionalmente para la definición de variables es var. Utilizada desde los inicios del lenguaje. En JavaScript ECMAScript 6 aparecen dos nuevas palabra reservas que para la definición de variables: let y const. Permitiendo así definir mejor el tipo de dato a almacenar en cada variable. Lo que se traduce en menos errores y un código más fácil de depurar. Al utilizar la palabra const se crean constantes que no se pueden modificadas, mientras que let variables. Aún así, aunque parezca que se utilizan para lo mismo, existen diferencias entre var y let en JavaScript que es importante tener en cuenta.

Ámbito de la palabra clave var

Las variables definidas con var tienen un ámbito de función. Por lo tanto, pueden ser utilizadas en cualquier punto de la función, incluso antes de ser definidas. Esto se puede ver el siguiente código:

console.log(x);
var x = 'var';
console.log(x);
undefined
var

Al ejecutar este código la primera línea se obtiene como salida undefined, mientras que, en la segunda, una vez asignado el valor a la variable, var. Esto también se puede ver en los bloques como if, el siguiente código se ejecuta sin problemas:

if (true) {
    var x = 'true';
}

console.log(x);

Ámbito de las palabras claves let y const

Las palabras clave introducidas en el estándar JavaScript ECMAScript 6 para la definición de variables, let y const, tienen ámbito de bloque. Por lo tanto, a diferencia de let, solamente pueden ser utilizadas a partir de su definición en el bloque de código. Así si en los ejemplos se cambia la palabra var por let el código producirá un error.

Analytics Lane lanza la versión 1.1 del laboratorio con nuevas suites de CLV y Scoring
En Analytics Lane
Analytics Lane lanza la versión 1.1 del laboratorio con nuevas suites de CLV y Scoring

La diferencia entre let y const es que las variables definidas mediante la primera se pueden modificar durante la ejecución, mientras que las creadas con la segunda con son constantes. Indicando así tanto al intérprete de JavaScript, permitiendo reservar la memoria de forma más eficiente, como a otros usuarios de las intenciones de la variable. Así cuando se sabe que el valor asignado a una variable no va a cambiar durante la ejecución es mejor utilizar const para su definición.

Hay que tener en cuenta que cuando se utiliza const es necesario asignar el valor en el momento de la definición. Ya que es este no se puede cambiar posteriormente. No pudiendo definir una variable sin asignar un valor como es el caso de let.

Publicidad


Diferencias entre var y let en JavaScript

Las palabras clave var y let pueden ser utilizadas para definir variables en JavaScript. Siendo aparentemente intercambiables entre sí. Pero, como se ha visto anteriormente, esto no es así ya que el ámbito de definición de ambas es diferente. Lo que tiene diferentes implicaciones a la hora de escribir código. Como se puede ver a continuación let tiene múltiples ventajas ya que evita situaciones en las que el código puede ser confuso.

Definir múltiples variables con el mismo nombre

El uso de var permite redefinir la misma variable en el mismo bloque, algo que no se puede hacer con let. Por ejemplo, el siguiente código función sin problemas:

var x = 1;
var x = 2;

Mientras que su versión con let produce un error.

let x = 1;
let x = 2;

Aún así en diferentes bloques si que es posible definir múltiples variables con el mismo nombre con let. Siendo cada una de ellas una variable diferente. Algo que se puede ver en el siguiente bloque de código.

let x = 1;

if (true) {
    let x = 2;
    console.log(x);
}

console.log(x);
2
1

En el bloque del if la variable x tiene como valor 2, mientras que fuera tiene el valor 1. Si dentro del bloque no se define la variable está conservará el valor al salir.

En el caso de var siempre se conserva el valor ya que el rango de definición es la función, no el bloque.

var x = 1;

if (true) {
    var x = 2;
    console.log(x);
}

console.log(x);
2
2

Utilización en los bucles for

En los bucles for es habitual definir una variable sobre la que iterar. Esto se puede hacer tanto con let como con var. Aunque en el caso de let el alcance de las variables solamente es dentro del bucle. Lo que permite evitar la aparición de problemas.

Un efecto secundario de esto es la posibilidad de anidar bucles dentro de otros con la misma variable para iterar con let.

for (let i=0; i < 2; ++i) {
    console.log('Primer', i);
    for (let i=0; i <2; ++i) {
        console.log('Segundo', i);
    }
}
Primer 0
Segundo 0
Segundo 1
Primer 1
Segundo 0
Segundo 1

Mientras que con var el resultado sería diferente, ya que en ambos bucles la variable sería la misma.

for (var i=0; i < 2; ++i) {
    console.log('Primer', i);
    for (var i=0; i <2; ++i) {
        console.log('Segundo', i);
    }
}
Primer 0
Segundo 0
Segundo 1

Además, en el caso de var la variable es accesible fuera del bucle, cosa que no pasa en la versión con let.

Publicidad


Conclusiones

Hoy se ha visto las palabras reservadas que se pueden utilizar en JavaScript para definir variables: var, let y cont. Empleando var y let para la definición de variables y const para la de constantes. Aunque aparentemente var y let parecen ser iguales esto no es así debido a que cada una tiene un alcance diferente.

El uso de let tiene grandes ventajas frente a var ya que evita muchos problemas de codificación. Evitando que se alteren los valores de una variable de forma accidental, algo difícil de depurar. Por otro lado, cuando el valor asignado es una constante, es aconsejable utilizar const para indicar a otros programadores el objetivo de la variable, evitar cambios accidentales de la constante e indicar al mismo tiempo al intérprete de JavaScript que puede almacenar los datos de una forma más eficiente.

Las ventajas que tiene el uso de let frente a var hace que ya no use nunca var en mi código. ¿Haréis vosotros lo mismo o seguiréis usando var?

Imágenes: Pixabay (Boskampi)

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 4.5 / 5. Votos emitidos: 10

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicaciones relacionadas

  • Analytics Lane lanza la versión 1.1 del laboratorio con nuevas suites de CLV y Scoring
  • Subplots en Matplotlib: cómo organizar múltiples gráficos en una sola figura
  • Cómo comparar datos con barras en Matplotlib: agrupadas, apiladas y porcentuales
  • Ley de Benford: cómo detectar datos manipulados con ejemplos reales
  • Costes hundidos en ciencia de datos: cuándo mantener un modelo y cuándo migrar
  • Lanzamiento de la versión 1.0 del laboratorio de Analytics Lane con nuevas herramientas de scoring
  • Síndrome del objeto brillante en ciencia de datos: el error simétrico a los costes hundidos
  • WOE e IV: La Base Matemática del Credit Scoring
  • De la Regresión Logística al Scorecard: La Transformación Matemática

Publicado en: JavaScript

Interacciones con los lectores

Comentarios

  1. Alonfo dice

    junio 3, 2021 a las 8:55 am

    Muy bueno. Si, creo que usare también let en todos mis códigos javascript debido a la ventaja que nos muestras.

    Saludos cordiales.

    Responder

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Calibración vs Discriminación en Credit Scoring: diferencias clave y cómo evaluarlas

junio 2, 2026 Por Daniel Rodríguez

Ley de Benford: cómo detectar datos manipulados con ejemplos reales

mayo 28, 2026 Por Daniel Rodríguez

Subplots en Matplotlib: cómo organizar múltiples gráficos en una sola figura

mayo 26, 2026 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Cómo crear un Data Lake en Azure paso a paso publicado el noviembre 13, 2025 | en Ciencia de datos
  • Creación de gráficos de barras y gráficos de columnas con Seaborn publicado el julio 18, 2023 | en Python
  • Personalización de gráficos en Seaborn: Cambiar colores, estilos y etiquetas publicado el julio 25, 2023 | en Python
  • Truco SQL: Ignorar acentos en búsquedas SQL publicado el noviembre 6, 2020 | en Herramientas
  • Gráficos de barras en Matplotlib publicado el julio 5, 2022 | en Python

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.1 (11)

Aplicar el método D’Hondt en Excel

Comentarios recientes

  • bif en JSON en bases de datos: cuándo es buena idea y cuándo no
  • bif en Cómo desinstalar Oracle Database 19c en Windows
  • M. Pilar en Cómo eliminar las noticias en Windows 11 y recuperar tu concentración
  • Daniel Rodríguez en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • Pepe en Probabilidad básica: cómo entender el azar en nuestra vida diaria

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2026 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto