1- Formas de declarar variables y diferencias ?
var:
Ámbito: función o global.
Hoisting: sí, pero su valor es undefined antes de asignar.
Reasignar y redeclarar: sí, dentro del mismo ámbito.
let:
Ámbito: bloque {}.
Hoisting: sí, pero no usable antes de la declaración (temporal dead zone).
Reasignar: sí. Redeclarar: no en el mismo bloque.
const:
Ámbito: bloque {}.
Hoisting: igual que let.
Reasignar o redeclarar: no.
Para objetos/arrays, sí se pueden modificar propiedades o elementos.
2- Qué es el Scope en JavaScript?
Scope es el contexto donde una variable es accesible. Hay tres tipos principales:
Global: accesible desde cualquier parte.
Function: accesible dentro de una función.
Block: accesible dentro de un bloque {} (usando let o const).
3- Qué es hoisting en JavaScript ?
Hoisting es el comportamiento donde las declaraciones de variables y funciones se “mueven” al inicio de su contexto (función o global) antes de ejecutar el código, permitiendo usarlas antes de declararlas.
4- Cuál es la diferencia entre undefined y null?
undefined: indica que una variable ha sido declarada pero no tiene valor.
null: es un valor asignado manualmente para indicar ausencia de valor.
5- Qué es la declaración y asignación ?
En programación, declaración es cuando creas una variable y reservas espacio en memoria para ella, mientras que asignación es cuando le das un valor a esa variable.
1- Cuáles son todos los tipos de datos en JavaScript?
Tipos primitivos:
Number: números enteros o decimales.
String: cadenas de texto.
Boolean: true o false.
Undefined: variable declarada sin valor asignado.
Null: valor intencionalmente vacío.
Symbol: valor único e inmutable, usado como clave única.
2- Qué tipos de estructuras de datos hay en JavaScript?
Arrays: listas ordenadas de elementos.
Objects: colecciones de pares clave-valor.
Sets: colecciones de valores únicos que no se repiten.
Maps: colecciones de pares clave-valor con claves de cualquier tipo.
Stacks y Queues: pueden implementarse usando arrays (LIFO/FIFO).
3- Función y sintaxis del método forEach() ?
forEach() itera sobre cada elemento de un array y ejecuta una función callback para cada uno.
No devuelve un nuevo array, siempre retorna undefined. Para transformar arrays, usar map().
const nums = [1, 2, 3];
nums.forEach((num) => {
console.log(num * 2);
});
4- Diferencia entre un arreglo y un objeto ?
Los arreglos almacenan datos ordenados y se accede a sus elementos por índices numéricos.
Los objetos almacenan datos no ordenados y se accede a sus valores mediante claves descriptivas.
5- Métodos de array.
push(), pop(), shift(), unshift()
forEach(), map(), filter(), reduce()
find(), findIndex(), includes()
slice(), splice(), concat()
sort(), reverse()
6- Cuáles son los métodos de los string ?
charAt(), concat(), includes(), indexOf(), lastIndexOf()
slice(), substring()
toLowerCase(), toUpperCase(), trim()
replace(), split()
startsWith(), endsWith()
7- Cuáles son los métodos de los objetos
Object.keys(), Object.values(), Object.entries()
Object.assign(), Object.freeze(), Object.seal()
hasOwnProperty()
Object.create()
8- Cómo funcionan el Rest Operator y el Spread Operator en JavaScript?
Rest (…): agrupa múltiples argumentos en un array.
Spread (…): expande un array u objeto en elementos individuales.
9- Cómo se utilizan las expresiones regulares en JavaScript?
Se usan para buscar, validar y manipular texto mediante patrones.
const regex = /patrón/;
const regex2 = new RegExp(‘patrón’);
11- Qué es una propiedad ?
Una propiedad es un par nombre-valor que describe una característica de un objeto.
const coche = { marca: ‘Toyota’, color: ‘Rojo’ };
console.log(coche.marca); // Toyota
12- Qué es un método ?
Un método en JavaScript es una función que se define como propiedad de un objeto.
1- Qué es y cómo se ve el formato JSON ?
JSON (JavaScript Object Notation) es un formato ligero y estructurado para representar datos en texto.
2- Cuáles son los métodos del JSON ?
JSON.stringify(obj) → Convierte objeto a string JSON.
JSON.parse(string) → Convierte string JSON a objeto.
1- Qué son las closures ?
Son funciones que recuerdan y pueden acceder a variables de su entorno externo incluso después de que la función externa haya terminado.
1- Diferencia entre for, while y do…while.
for: cuando conocemos el número de iteraciones.
while: se ejecuta mientras la condición sea verdadera.
do…while: igual que while, pero se ejecuta al menos una vez.
3- Diferencia entre forEach() y map().
forEach(): ejecuta, pero no devuelve nada.
map(): devuelve un nuevo array transformado.
4- Diferencia entre for…in y for…of.
for…in: itera sobre claves de un objeto.
for…of: itera sobre valores de objetos iterables.
5- Qué es un loop infinito y cómo evitarlo?
Sucede cuando la condición nunca es falsa. Evitarlo modificando variables o asegurando condiciones de salida.
6- Cuándo usar reduce() en lugar de un for?
Cuando quieres acumular valores en una sola salida (suma, concatenación, etc.).