|
|
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
|
|
|