En JavaScript, los arrays son estructuras de datos que permiten mezclar diferentes tipos de elementos, como números, cadenas y booleanos, a diferencia de los arrays en C, que requieren uniformidad de tipo. Además, intentar acceder a un índice fuera de los límites en JavaScript devuelve undefined sin generar errores, mientras que en C se produce un comportamiento indefinido.
Los arrays pueden emular estructuras como pilas y colas. Para implementar una pila (último en entrar, primero en salir), se utilizan push para agregar elementos y pop para extraerlos:
let pila = [];
pila.push("elementoA");
pila.push("elementoB");
console.log(pila.pop()); // "elementoB"
console.log(pila.pop()); // "elementoA"
Para una cola (primero en entrar, primero en salir), se usan unshift para añadir al inicio y shift para remover del inicio:
let cola = [];
cola.unshift("registro1");
cola.unshift("registro2");
cola.unshift("registro3");
console.log(cola.shift()); // "registro3"
console.log(cola.shift()); // "registro2"
El método sort ordena los elementos. Por defecto, ordena cadenas según el código Unicode. Para números, convierte los valores a cadena antes de comparar, lo que puede dar ordenamientos incorrectos. Para ordenar numéricamente, se proporciona una función comparadora:
let valores = [15, 3, 9, 120, 42];
valores.sort((a, b) => a - b); // Orden ascendente
console.log(valores); // [3, 9, 15, 42, 120]
Las funciones se definen con la palabra clave function, permitiendo encapsular lógica reutilizable:
function calcularSuma(a, b) {
return a + b;
}
Los operadores en JavaScript incluyen:
- Asingación: = para asignar valores a variables.
- Aritméticos: +, -, *, / para cálculos básicos.
- Incremento/Decremento: ++ y --, con diferencias entre prefijo (modifica antes) y sufijo (modifica después).
- Compuestos: +=, -=, *=, /= para operaciones combinadas.
- Comparación: == para igualdad abstracta (convierte tipos), === para igualdad estricta (verifica tipo y valor).
- Lógicos: && (y lógico), || (o lógico), ! (negación).
- Teranrio: condición ? valorVerdadero : valorFalso.
Ejemplo de operador de igualdad estricta:
let x = "50";
let y = 50;
console.log(x == y); // true, debido a conversión de tipo
console.log(x === y); // false, tipos diferentes
Ejemplo del operador ternario:
let temperatura = 25;
let estado = (temperatura > 30) ? "Caliente" : "Templado";
console.log(estado);