2.1 Variables en JavaScript
JavaScript es un lenguaje de programación flexible y dinámico que admite varias formas de declarar variables y trabajar con tipos de datos. En esta conferencia, vamos a ver tres formas clave de declarar variables (var, let, const) y los tipos de datos primitivos básicos en JavaScript.
Variables en JavaScript
JavaScript es un lenguaje con tipado dinámico. Las variables en él no tienen tipo. Se puede asignar cualquier valor a cualquier variable en cualquier momento (pero hay matices).
Para crear una variable, se debe escribir una construcción del tipo:
var name;
Se puede asignar un valor a la variable de inmediato:
var name = value;
Pero en realidad, en JavaScript hay 3 formas de crear variables. Vamos a hablar de ellas con más detalle.
Operador var
Las variables declaradas con var tienen un ámbito funcional o global. Están sujetas a "hoisting", lo que significa que su declaración se mueve a la parte superior de su ámbito al ejecutar el código.
Ejemplo:
console.log(x); // undefined
var x = 10;
console.log(x); // 10
En este ejemplo, la variable x se eleva al comienzo de su ámbito, por lo que el primer console.log muestra undefined.
En otras palabras, el "hoisting" convierte nuestro código en esto:
var x;
console.log(x); // undefined
x = 10;
console.log(x); // 10
Operador let
Los desarrolladores querían cambiar el comportamiento del operador var, pero temían romper millones de líneas de código ya escritas. Por eso simplemente inventaron otro operador que también crea variables, pero con un comportamiento un poco diferente.
Las variables declaradas con let tienen un ámbito de bloque. Esto significa que solo están disponibles dentro del bloque de código (generalmente entre llaves {}) donde se declaran. let no está sujeto a hoisting como var.
Ejemplo:
La variable y solo existe dentro del bloque if.
if (true) {
let y = 20;
console.log(y); // 20
}
console.log(y); // ReferenceError: y is not defined
Operador const
Las variables declaradas con const también tienen un ámbito de bloque y no pueden ser reasignadas después de su inicialización. Sin embargo, esto no significa que los objetos declarados a través de const sean inmutables: sus propiedades pueden cambiar.
Es decir, no se puede cambiar la variable, pero el objeto al que se refiere — sí. Querían lo mejor, pero salió como siempre.
Ejemplo:
En este ejemplo, la constante x no se puede reasignar, pero el objeto obj puede cambiar.
const x = 30;
console.log(x); // 30
x = 40; // TypeError: Assignment to constant variable.
const obj = { name: 'Alice' };
obj.name = 'Bob'; // Esto es permitido
console.log(obj.name); // Bob
2.2 Tipos de datos primitivos
JavaScript admite varios tipos de datos primitivos que representan valores simples, que no son objetos complejos.
Tipo Number
Representa cualquier valor numérico, incluidos enteros y números de punto flotante.
Ejemplos:
let num = 42;
let pi = 3.14;
Tipo String
Representa datos de texto: cadenas, caracteres, emojis. Todo lo que se parece a cadenas — va aquí.
Ejemplos:
let greeting = "Hello, world!";
let facepalm = "🤦";
let char = 'x';
Tipo Boolean
Representa valores lógicos true o false.
let isTrue = true;
let isFalse = false;
Tipo Null
Representa la ausencia intencionada de un valor.
let empty = null;
Si el tipo consiste en un solo valor que significa ausencia de valor, ¿quizás es más un valor único que un tipo único?
Tipo Undefined
Representa el valor de una variable que ha sido declarada, pero no inicializada.
let notAssigned;
console.log(notAssigned); // undefined
2.3 Comparación de var, let y const
Comparemos nuestros tres métodos de creación de variables una vez más:
| Característica | var | let | const |
|---|---|---|---|
| Ámbito | Funcional o global | De bloque | De bloque |
| Hoisting | Sí, pero la inicialización no es elevada | No | No |
| Reasignación | Sí | Sí | No |
| Inicialización | No obligatoria | No obligatoria | Obligatoria |
JavaScript proporciona varias formas de declarar variables, cada una con sus propias características y aplicabilidad dependiendo del contexto. var se usa menos debido a sus características de hoisting y ámbito global. let y const son preferidos en JavaScript moderno debido a su ámbito de bloque y control sobre la reasignación.
Los tipos de datos primitivos permiten trabajar con las estructuras de datos básicas, proporcionando la funcionalidad básica necesaria para crear aplicaciones complejas. Y este es el lenguaje más popular del mundo :)
GO TO FULL VERSION