> For the complete documentation index, see [llms.txt](https://cursoweb.fpdeinformatica.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cursoweb.fpdeinformatica.com/t12-javascript-el-lenguaje-de-programacion.md).

# T12: JavaScript - El Lenguaje de Programación

### Tabla de Contenidos

#### **🔢** [**Capítulo 1: Tipos de Datos**](/t12-javascript-el-lenguaje-de-programacion/capitulo-1-tipos-de-datos.md)

* 1.1. Tipado dinámico y debilidad de tipos
* 1.2. Tipos primitivos
* 1.3. Tipos complejos: Object y Array
* 1.4. El operador typeof y detección de tipos
* 1.5. Coerción de tipos

#### **➕** [**Capítulo 2: Operadores Fundamentales**](/t12-javascript-el-lenguaje-de-programacion/capitulo-2-operadores-fundamentales.md)

* 2.1. Operadores aritméticos
* 2.2. Operadores de asignación
* 2.3. Operadores de comparación
* 2.4. Operadores lógicos
* 2.5. Operadores unarios
* 2.6. Precedencia y asociatividad de operadores
* 2.7. El operador ternario
* 2.8. Operadores especiales

#### **📝** [**Capítulo 3: Variables y Declaración**](/t12-javascript-el-lenguaje-de-programacion/capitulo-3-variables-y-declaracion.md)

* 3.1. Declaración con var: ámbito global y función
* 3.2. Declaración con let: ámbito de bloque
* 3.3. Declaración con const: inmutabilidad aparente
* 3.4. Hoisting: comportamiento de las declaraciones
* 3.5. Identificadores válidos y buenas prácticas
* 3.6. Case-sensitivity en JavaScript
* 3.7. Temporal Dead Zone (TDZ)

#### **⌨️** [**Capítulo 4: Entrada de Datos y Console**](/t12-javascript-el-lenguaje-de-programacion/capitulo-4-entrada-de-datos-y-console.md)

* 4.1. prompt(): lectura desde diálogo modal
* 4.2. confirm(): confirmación binaria del usuario
* 4.3. alert(): notificación al usuario
* 4.4. console como herramienta de depuración
* 4.5. console.log(), console.warn(), console.error()
* 4.6. Formateo de mensajes en consola
* 4.7. console.table() y otros métodos útiles
* 4.8 Buenas prácticas con console

#### **🔀** [**Capítulo 5: Sentencias Condicionales**](/t12-javascript-el-lenguaje-de-programacion/capitulo-5-sentencias-condicionales.md)

* 5.1. Introducción: lógica de decisión
* 5.2. Sentencia if: la decisión básica
* 5.3. Sentencia if-else: rama alternativa
* 5.4. Sentencia if-else if-else: múltiples alternativas
* 5.5. Sentencia switch-case: selección por casos
* 5.6. El operador ternario: condición en línea
* 5.7. Condiciones complejas y operadores lógicos
* 5.8. Casos prácticos avanzados

#### **🔁** [**Capítulo 6: Bucles e Iteración**](/t12-javascript-el-lenguaje-de-programacion/capitulo-6-bucles-e-iteracion.md)

* 6.1. ¿Cuándo necesitamos repetir código?
* 6.2. Bucle while: repetición condicional
* 6.3. Bucle do-while: garantía de ejecución
* 6.4. Bucle for: iteración controlada
* 6.5. Sentencias de control: break y continue
* 6.6. Bucles anidados
* 6.7. Bucle for-of: iteración sobre valores (ES6+)
* 6.8. Casos prácticos avanzados

#### **🧰** [**Capítulo 7: Introducción a Funciones**](/t12-javascript-el-lenguaje-de-programacion/capitulo-7-introduccion-a-funciones.md)

* 7.1. ¿Qué es una función?
* 7.2. Declaración de funciones: function declaration
* 7.3. Function expressions: funciones anónimas
* 7.4. Arrow functions: sintaxis moderna (ES6+)
* 7.5. Parámetros, argumentos y valores por defecto
* 7.6. La sentencia return
* 7.7. Scope y closures
* 7.8. Recursión: funciones que se llaman a sí mismas

#### **📦** [**Capítulo 8: Cadenas de Texto**](/t12-javascript-el-lenguaje-de-programacion/capitulo-8-cadenas-de-texto.md)

* 8.1. Creación de cadenas: comillas simples, dobles y template strings
* 8.2. Propiedades: length
* 8.3. Métodos de lectura
* 8.4. Métodos de transformación
* 8.5. Métodos de búsqueda
* 8.6. Métodos de extracción
* 8.7. Métodos de reemplazo
* 8.8. Template strings avanzados

#### **🎯** [**Capítulo 9: Números y Aritmética**](/t12-javascript-el-lenguaje-de-programacion/capitulo-9-numeros-y-aritmetica.md)

* 9.1. Representación de números en JavaScript
* 9.2. Enteros y decimales: precisión de punto flotante
* 9.3. NaN (Not-a-Number) e Infinity
* 9.4. Métodos de conversión
* 9.5. Métodos de redondeo
* 9.6. Métodos de la clase Math
* 9.7. Generación de números aleatorios
* 9.8. Números grandes: BigInt (ES2020+)

#### **🪟** [**Capítulo 10: Introducción a Objetos y Arrays**](/t12-javascript-el-lenguaje-de-programacion/capitulo-10-introduccion-a-objetos-y-arrays.md)

* 10.1. Objetos en JavaScript: estructura clave-valor
* 10.2. Creación de objetos: sintaxis literal
* 10.3. Acceso a propiedades
* 10.4. Adición y modificación de propiedades
* 10.5. Arrays: creación y acceso a elementos
* 10.6. Métodos básicos de arrays
* 10.7. Iteración sobre arrays
* 10.8. Diferencias entre objetos y arrays

#### **⚠️** [**Capítulo 11: Manejo de Errores Básicos**](/t12-javascript-el-lenguaje-de-programacion/capitulo-11-manejo-de-errores-basicos.md)

* 11.1. ¿Qué son los errores en JavaScript?
* 11.2. Tipos de errores comunes
* 11.3. Estructura try-catch: captura de errores
* 11.4. Bloque finally: código que siempre se ejecuta
* 11.5. Lanzar errores: throw
* 11.6. Errores de validación en entrada de datos
* 11.7. Buenas prácticas de manejo de errores
* 11.8. Depuración con herramientas del navegador

#### **🎨** [**Capítulo 12: Buenas Prácticas y Estilo de Código**](/t12-javascript-el-lenguaje-de-programacion/capitulo-12-buenas-practicas-y-estilo-de-codigo.md)

* 12.1. Importancia del estilo consistente
* 12.2. Naming conventions: camelCase
* 12.3. Comentarios: explicar el porqué
* 12.4. Indentación y espaciado
* 12.5. Evitar antipatrones comunes
* 12.6. Herramientas: ESLint y Prettier
* 12.7. Principios SOLID adaptados a JavaScript
* 12.8. Lectura de código de calidad


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://cursoweb.fpdeinformatica.com/t12-javascript-el-lenguaje-de-programacion.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
