Saltearse al contenido

hello_world.js

🔹 Tipos de Datos

JavaScript es un lenguaje dinámico con tipado débil. Los tipos de datos se dividen en primitivos y objetos.

Strings

let saludo = "Hola, JavaScript!";
let nombre = 'John';
console.log(saludo + " " + nombre);

Numbers

let entero = 42;
let decimal = 3.14;
console.log(entero + decimal); // 45.14

Booleans

let esVerdadero = true;
let esFalso = false;
console.log(esVerdadero, esFalso);

Null y Undefined

let valorNulo = null;
let valorIndefinido;
console.log(valorNulo, valorIndefinido);
Tipos de datos y operadores
let entero = 42;
let decimal = 3.14;
let esVerdadero = true;
let texto = "Hola, JS!";
let lista = [1, 2, 3];
let conjunto = new Set(["A", "B", "C"]);
let mapa = new Map([["clave", "valor"]]);
let cualquiera = "Puedo cambiar de tipo";

🔹 Estructuras de Control

Condicionales

let edad = 20;
if (edad >= 18) {
console.log("Mayor de edad");
} else {
console.log("Menor de edad");
}

Switch

let opcion = 2;
switch (opcion) {
case 1:
console.log("Opción 1");
break;
case 2:
console.log("Opción 2");
break;
default:
console.log("Opción no válida");
}
otros ejemplos de switch
let resultado = {
1: "uno",
2: "dos",
3: "tres"
}[opcion] || "otro";
console.log(resultado);

🔹 Funciones en JavaScript

function saludo() {
console.log("Hola desde una función!");
}
const suma = (a, b) => a + b;
saludo();
console.log(suma(3, 5));

Parámetros opcionales

function saludar(nombre, apellido = "Desconocido") {
console.log(`Hola, ${nombre} ${apellido}`);
}
saludar("Juan");

Funciones de orden superior

function ejecutar(funcion) {
funcion();
}
ejecutar(() => console.log("Ejecutando función anónima"));

🔹 Colecciones (Arrays, Sets y Maps)

Arrays

let lista = ["JS", "Node", "React"];
lista.push("Vue");
console.log(lista);

Sets (Colecciones sin duplicados)

let conjunto = new Set(["JS", "Node", "JS"]);
console.log(conjunto); // {"JS", "Node"}

Mapas (Diccionarios clave-valor)

let mapa = new Map();
mapa.set("nombre", "Carlos");
mapa.set("edad", 25);
console.log(mapa.get("nombre"));

🔹 Bucles en JavaScript

For clásico

for (let i = 0; i < lista.length; i++) {
console.log(lista[i]);
}

For-of

for (let item of lista) {
console.log(`📝 ${item}`);
}

While y Do-While

let contador = 0;
while (contador < 3) {
console.log(`Iteración ${contador}`);
contador++;
}
do {
console.log(`Iteración ${contador}`);
contador++;
} while (contador < 6);

🔹 OOP en JavaScript

class Persona {
constructor(nombre, edad) {
this.nombre = nombre;
this.edad = edad;
}
presentarse() {
console.log(`Hola, soy ${this.nombre} y tengo ${this.edad} años.`);
}
}
let p = new Persona("Carlos", 30);
p.presentarse();

🔹 Enumeraciones (No existen nativamente en JS, pero se pueden simular)

const Lenguajes = Object.freeze({
JS: "JavaScript",
TS: "TypeScript",
PY: "Python"
});
console.log(`Lenguaje seleccionado: ${Lenguajes.JS}`);

🔹 Manejo de Excepciones

try {
let resultado = 10 / 0;
} catch (e) {
console.log(`❌ Error: ${e.message}`);
} finally {
console.log("Este bloque siempre se ejecuta");
}

🔹 Programación Asíncrona en JavaScript

async function obtenerDatos() {
console.log("⌛ Cargando datos...");
await new Promise(res => setTimeout(res, 2000));
console.log("✅ Datos cargados");
}
obtenerDatos();

🔹 Mixins en JavaScript

const Caminante = {
caminar() {
console.log("Estoy caminando...");
}
};
class Persona {}
Object.assign(Persona.prototype, Caminante);
let p = new Persona();
p.caminar();

🔹 Extensiones en JavaScript

String.prototype.enMayusculas = function () {
return this.toUpperCase();
};
console.log("js".enMayusculas()); // "JS"

Hello, JavaScript! 🚀