|
|
| Códigos disponibles en git |
¿Por qué?
¿Qué?
| Lenguaje de Programación Multiparadigma | Documentación | |
|---|---|---|
|
|
|
¿Para qué?
| Primero para el Front-end | Después para el Back-end y luego , … todo!?!? |
|---|---|
|
|
¿Cómo?
| Multi-paradigma | Elementos de Programación | Capacitación |
|---|---|---|
Programacion Imperativa |
|
|
Programacion Estructurada |
|
|
Programacion Orientada a Procesos |
|
|
Programacion Orientada a Objetos |
|
|
Programacion con Excepciones |
|
|
Programacion Modular |
|
|
Programacion Concurrente |
|
|
Programacion Recursiva |
|
|
Programacion Funcional |
|
|
Programa
|
|
|
| Programa | javascript |
|---|---|
|
|
| Comentarios | javascript |
|---|---|
|
|
Programación Imperativa
| Tipos Primitivos | Sentencias simples | Operadores | Expresiones |
|---|---|---|---|
Tipo number, valores y operadores aritméticos unarios y binarios |
Salida de datos por consola |
Operadores de de bits, unario y binarios |
Operador paréntesis |
Tipo string, valores y operadores de concatenación e indexación |
Entrada de datos por consola |
Operador typeof y conversión de tipos |
Precedencia y asociatividad de operadores |
Tipo boolean, valores y operadores lógicos unario y binarios |
Sentencias let (var) y const y tipo undefined |
Operadores de coalescencia y ternario |
|
Operadores relacionales, operadores de igualdad, desigualda y ordenacion |
Sentencia de asignación |
Operadores con efectos laterales: acumulación e incremento/decremente y coma |
Tipos Primitivos
|
|
Tipo number
Valores de tipo number
| number | javascript |
|---|---|
|
|
Operadores unarios
| operadores unarios prefijos | javascript |
|---|---|
|
|
Operadores binarios
| operadores binarios infijos, | javascript |
|---|---|
|
|
Tipo string
Valores de tipo string
| string | javascript |
|---|---|
|
|
Operador de Concatenación
| Concatenación | javascript |
|---|---|
|
|
Operador de Indexación
| Indexación | javascript |
|---|---|
|
|
Tipo boolean
Valores de tipo boolean
| boolean | javascript |
|---|---|
|
|
Operadores unarios
| operador unario prefijo | javascript |
|---|---|
|
|
Operadores binarios
| operadores binarios infijos | javascript |
|---|---|
|
|
Operadores Relacionales
Tipo string
| Operadores binarios infijos, | javascript |
|---|---|
|
|
Tipo number
| Operadores binarios infijos | javascript |
|---|---|
|
|
Tipo boolean
| Operadores binarios infijos | javascript |
|---|---|
|
|
Sentencias Simples
Salida de Datos
| Salida de Datos | javascript |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
|
||
Entrada de Datos
| Entrada de datos | javascript |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
Sentencia let
| Sentencia let | javascript |
|---|---|
|
|
|
|
| Aplicaciones | ||
|---|---|---|
Tipo undefined
| Tipo undefined | javascript |
|---|---|
|
|
| Operadores binarios infijos | javascript |
|---|---|
|
|
Sentencia de Asignación
| Operador de asignación | javascript |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
Sentencia const
| Sentencia const | javascript |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
|
||
Sentencia var
| Sintaxis, | javascript |
|---|---|
|
|
Operadores
Operadores de Bits
| Sintaxis | javascript |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
Operador typeof
| Sintaxis | javascript |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
Conversión de Tipos
|
|
| Conversión a tipo numérico | Ejemplos |
|---|---|
|
|
| Conversión a tipo cadena de caracteres | Ejemplos |
|---|---|
|
|
| Conversión a tipo lógico | Ejemplos |
|---|---|
|
|
Operador Ternario
| Operador ternario | javascript |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
Operador de Coalescencia
| Operador de coalescencia | javascript |
|---|---|
|
|
Operadores de Acumulación
| Operador de acumulación | Javascript |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
Operadores de Incremento y Decremento
| Operador de incremento/decremento | Javascript |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
Operador Coma
| Operador coma | javascript |
|---|---|
|
|
Expresiones
Precedencia y asociatividad
| Expresiones | javascript |
|---|---|
|
|
Operador Paréntesis
| Operador paréntesis | javascript |
|---|---|
|
|
Tabla de Precedencia y Asociatividad
Precedence |
Operator type |
Associativity |
Individual operators |
21 |
Grouping |
n/a |
( … ) |
20 |
Member Access |
left-to-right |
… . … |
Computed Member Access |
… [ … ] |
||
new (with argument list) |
n/a |
new … ( … ) |
|
Function Call |
left-to-right |
… ( … ) |
|
Optional chaining |
?. |
||
19 |
new (without argument list) |
right-to-left |
new … |
18 |
Postfix Increment |
n/a |
… ++ |
Postfix Decrement |
… — |
||
17 |
Logical NOT (!) |
right-to-left |
! … |
Bitwise NOT (~) |
~ … |
||
Unary plus (+) |
+ … |
||
Unary negation (-) |
\- … |
||
Prefix Increment |
++ … |
||
Prefix Decrement |
— … |
||
typeof |
typeof … |
||
void |
void … |
||
delete |
delete … |
||
await |
await … |
||
16 |
Exponentiation (*)* |
right-to-left |
… ** … |
15 |
Multiplication ()* |
left-to-right |
… * … |
Division (/) |
… / … |
||
Remainder (%) |
… % … |
||
14 |
Addition (+) |
left-to-right |
… + … |
Subtraction (-) |
… - … |
||
13 |
Bitwise Left Shift (<<) |
left-to-right |
… << … |
Bitwise Right Shift (>>) |
… >> … |
||
Bitwise Unsigned Right Shift (>>>) |
… >>> … |
||
12 |
Less Than (<) |
left-to-right |
… < … |
Less Than Or Equal (⇐) |
… ⇐ … |
||
Greater Than (>) |
… > … |
||
Greater Than Or Equal (>=) |
… >= … |
||
in |
… in … |
||
instanceof |
… instanceof … |
||
11 |
Equality (==) |
left-to-right |
… == … |
Inequality (!=) |
… != … |
||
Strict Equality (===) |
… === … |
||
Strict Inequality (!==) |
… !== … |
||
10 |
Bitwise AND (&) |
left-to-right |
… & … |
9 |
Bitwise XOR (^) |
left-to-right |
… ^ … |
8 |
Bitwise OR (|) |
left-to-right |
… | … |
7 |
Logical AND (&&) |
left-to-right |
… && … |
6 |
Logical OR (||) |
left-to-right |
… || … |
5 |
Nullish coalescing operator (??) |
left-to-right |
… ?? … |
4 |
Conditional (ternary) operator |
right-to-left |
… ? … : … |
3 |
Assignment |
right-to-left |
… = … |
… += … |
|||
… -= … |
|||
… **= … |
|||
… *= … |
|||
… /= … |
|||
… %= … |
|||
… <⇐ … |
|||
… >>= … |
|||
… >>>= … |
|||
… &= … |
|||
… ^= … |
|||
… |= … |
|||
… &&= … |
|||
… ||= … |
|||
… ??= … |
|||
2 |
yield |
right-to-left |
yield … |
yield* |
yield* … |
||
1 |
Comma / Sequence |
left-to-right |
… , … |
| Aplicaciones | ||
|---|---|---|
Programacion Estructurada
| Sentencias alternativas | Sentencias iterativas | Sentencia secuencial | Arrays |
|---|---|---|---|
Sentencias if y switch |
Sentencias while, do/while, for (ni "break" ni continue)# |
Sentencia con ámbitos de bloque y colisión de nombres |
Colección homogénea de datos, creación y altas, bajas, modificaciones y consultas |
Sentencias Alternativas
| Sentencia Alternativa | javascript |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
|
||
Sentencias Iterativas
| Sentencia Iterativa | javascript |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
Sentencia Secuencial
| Sentencia Secuencial | javascript |
|---|---|
|
|
| Ámbito de bloque | javascript |
|---|---|
|
|
| Colisión y Ámbigüedad | javascript |
|---|---|
|
|
| Jerarquización | javascript |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
|
||
|
||
|
||
Tablas
| Creación | javascript |
|---|---|
|
|
| Referencias y null | Ejemplos |
|---|---|
|
|
| Desestructuración de arrays | Ejemplos |
|---|---|
|
|
| Acceso a elementos | Ejemplos |
|---|---|
|
|
| Modificación de elementos | Ejemplos |
|---|---|
|
|
| Alta de elementos | Ejemplos |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
|
|
|
|
|
|
Programación Orientada a Procesos
Funciones
Funcion nominal
|
|
|
|
Elevación, Hoisting
|
|
Reglas de Ámbito
|
|
Colisión
|
|
Función parametrizada
|
|
Retorno de Función
|
|
| Aplicaciones | ||
|---|---|---|
|
||
|
||
|
||
|
||
|
||
|
|
|
|
|
|
|
||
Funciones Globales
|
|
|
Variables/Constantes Función
|
|
Funciones de Orden Superior
|
|
| Aplicaciones | ||
|---|---|---|
|
|
|
|
|
|
|
||
Funciones Anónimas
|
|
| hoisting | Ejemplos |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
|
|
|
|
|
|
|
||
Funciones Flecha
|
|
| Aplicaciones | ||
|---|---|---|
Funciones Clousures
|
|
|
|
| Aplicaciones | ||
|---|---|---|
Funciones Currificadas
|
|
| Aplicaciones | ||
|---|---|---|
Programación Orientada a Objetos
Objetos
| Creación de objeto | Ejemplos |
|---|---|
|
|
| Inicialización de objetos | Ejemplos |
|---|---|
|
|
| Asignación de objetos | Ejemplos |
|---|---|
|
|
| Gestión de propiedades | Ejemplos |
|---|---|
|
|
| Objeto sin comportamiento | Ejemplos |
|---|---|
|
|
| Objeto con comportamiento | Ejemplos |
|---|---|
|
|
| this | Ejemplos |
|---|---|
|
|
| clousure | Ejemplos |
|---|---|
|
|
| Patrón Factoria | Ejemplos |
|---|---|
|
|
| Funciones como objetos | Ejemplos |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
Objetos de utilidad
| Math | |
|---|---|
|
|
| JSON | |
|---|---|
|
|
Funciones Constructoras
|
|
|
|
|
|
|
|
| Aplicaciones | ||
|---|---|---|
Funciones constructoras de utilidad
| Date | |
|---|---|
|
|
| RegExp | |
|---|---|
|
|
Funciones constructoras de envoltura
| Boolean | |
|---|---|
|
|
| Number | |
|---|---|
|
|
| String | |
|---|---|
|
|
Funciones constructoras de estructuras de datos
| Set | |
|---|---|
|
|
|
|
| Aplicaciones | ||
|---|---|---|
| WeakSet | |
|---|---|
|
|
| Map | |
|---|---|
|
|
| WeakMap | |
|---|---|
|
|
Función constructora Object
| Object | |
|---|---|
|
|
Función contructora Array
| Array | |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
Función constructora Function
|
|
Clases
| Definición de clases | |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
Accesores y Configuradores |
|
|
|
Expresiones de clases |
|
|
|
this
|
|
|
Enlace por Defecto
|
|
Enlace Implícito
|
|
|
|
|
Enlace Explícito
|
|
|
Enlace con new
|
|
Enlace léxico
|
|
|
|
|
Herencia
| Herencia con Clases | javascript |
|---|---|
|
|
| Herencia con Funciones Constructoras | javascript |
|---|---|
|
|
| Herencia con Clousures | javascript |
|---|---|
|
|
| Herencia con patrón Factoria | javascript |
|---|---|
|
|
Símbolos
| Symbol | |
|---|---|
|
|
|
|
Iteradores
| Iterator | |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
| Iterables | |
|---|---|
|
|
| Aplicaciones | ||
|---|---|---|
Generadores
| Generator | |
|---|---|
|
|
|
|
| Aplicaciones | ||
|---|---|---|
Fibonacci: unlimited - reinicializable - limited |
||
Unresolved directive in ust4_how/ust0_index.adoc - include::ust5_object_oriented/ust0_index.adoc[] == Programación Modular
JavaScript no tenía un sistema estándar para modularizar aplicaciones |
|
|
|
EcmaScript Modules
|
|
| Importación del módulo | JavaScript | |
|---|---|---|
|
|
|
|
|
|
|
|
|
| Exportación por defecto | JavaScript |
|---|---|
|
|
|
|
|
|
|
|
| Exportación explícita | JavaScript |
|---|---|
|
|
|
|
|
|
|
| Importación global o parcial | JavaScript |
|---|---|
|
|
|
|
|
|
|
|
| Aplicaciones | ||
|---|---|---|
Programación con Excepciones
| Elevación de Excepciones | javascript |
|---|---|
|
|
| Elevación de Excepciones | javascript |
|---|---|
|
|
|
|
|
| Delegación de Excepciones | |
|---|---|
|
|
|
|
| Objetos como Excepciones | |
|---|---|
|
|
|
|
| Aplicaciones | ||
|---|---|---|
Recursividad
Recursividad Lineal
|
|
| - Valores de la aplicación | - Valor resultado | - Recorrido |
|---|---|---|
|
|
|
… |
… |
|
|
|
|
|
|
|
¿Qué le falta al Valor resultado del Valor del Caso General en un Grado Menor para ser igual al Valor del resultado del Valor del Caso General, ayudándote del Valor del Caso General? … con varios casos surge el salto inductivo: Generalización!!! |
||
| Factorial | Potencia | ||
|---|---|---|---|
|
|
|
|
|
|
|
|
… |
… |
… |
… |
|
|
|
|
|
|
|
|
factorial(5) = 5 * 24 = 5 * factorial(5-1) | factorial(n) = n * factorial(n-1) |
potencia(3,4) = 3 * _potencia(3,4-1) = 3 * 27 = 81 | _potencia(b,e) = b * _potencia(b,e-1) |
||
| Aplicaciones | ||
|---|---|---|
|
||
Recursividad Múltiple
|
|
| Aplicaciones | ||
|---|---|---|
Recursividad Mutua
|
| Aplicaciones | ||
|---|---|---|
Recursividad de Cola
Las funciónes de recursividad de cola son un tipo especial de funciones recursivas en las que todo el trabajo se hace antes de cada llamada recursiva
— Touretzky
1984 |
|
|
|
| Aplicaciones | ||
|---|---|---|
Recursividad con Parámetros de Acumulación
|
| Aplicaciones | ||
|---|---|---|
|
||
Backtraking
|
|
| Aplicaciones | ||
|---|---|---|
Programación Funcional
| - Paradigma Imperativo | - Paradigma Funcional |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
soluciones eficientes, recursividad: consumo de recursos, … |
soluciones "ineficientes", parámetros de acumulación, … |
| Aplicaciones | ||
|---|---|---|
|
||
Programación Concurrente
|
|
|
|
|
|
Continuaciones Callbacks
|
|
| Aplicaciones | ||
|---|---|---|
|
|
Promesas
|
|
| Estados de una promesa: | |
|---|---|
|
|
|
|
|
|
| Aplicaciones | ||
|---|---|---|
|
||
Funciones Asíncronas
|
|
| Aplicaciones | ||
|---|---|---|
|
||
Sintesis
Bibliografía
| Obra, Autor y Edición | Portada | Obra, Autor y Edición | Portada |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ponente
|
|
|














