Publicado el 25 de Septiembre del 2018
12.995 visualizaciones desde el 25 de Septiembre del 2018
804,3 KB
99 paginas
Creado hace 10a (28/01/2015)
Apuntes de Javascript I
Nivel Intermedio
JuanMa Garrido
Este libro está a la venta en http://leanpub.com/apuntes-javascript-intermedio
Esta versión se publicó en 2015-01-28
This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing
process. Lean Publishing is the act of publishing an in-progress ebook using lightweight tools
and many iterations to get reader feedback, pivot until you have the right book and build
traction once you do.
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
“Si tu tonto no eres, lo que pasa es que te tiene que gustar” (mi madre)
A mi madre…
Índice general
.
.
1. Prologo .
.
.
1.1 Referencias
.
1.2 Agradecimientos
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2. Ideas Claras de Javascript .
.
.
.
.
3. Breve historia de Javascript .
.
.
4. ECMAScript
.
4.1 EcmaScript 5 .
4.2 EcmaScript 3 .
4.3 EcmaScript 6 .
5. Variables
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6. Primitivas y Tipos de Datos .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7. Operadores (Aritméticos, Lógicos y de Comparación) .
.
.
.
7.1 Operadores Aritméticos .
.
7.2 Operadores Lógicos .
.
.
7.3 Operadores de Comparación .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8. Conversiones .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9. Condiciones (Bifurcaciones Condicionales) .
.
.
9.1 Condicional if - else .
9.2 Condicional switch .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10.Bucles (Loops)
.
.
10.1 El bucle while .
.
10.2 El bucle do-while .
.
10.3 El bucle for .
.
10.4 El bucle for-in .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11.Funciones .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11.1 Parametros .
.
11.2 Funciones pre-definidas .
.
11.3 Ámbito (Scope) de las Funciones .
.
11.4 Funciones Callback .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
2
3
5
5
7
7
9
11
13
13
15
16
18
20
20
21
23
23
23
24
25
26
26
27
30
30
ÍNDICE GENERAL
11.5 Closures .
12.Arrays .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13.Objetos
.
.
.
.
.
.
.
.
.
.
13.1 Funciones Constructoras .
13.2 Trabajando con Objetos .
.
.
.
.
14.Objetos Globales .
.
.
.
.
.
.
.
.
14.1 Object
.
.
14.2 Array .
.
14.3 Function .
14.4 Boolean .
14.5 Number
.
.
14.6 String .
.
.
14.7 Math .
14.8 Date .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15.El entorno del Navegador .
.
15.1 Deteccion de Funcionalidades
.
.
16.BOM .
.
.
.
.
.
.
.
.
.
.
.
.
16.1 Propiedades de window .
.
16.2 Métodos de window .
16.3 El objeto ‘document’
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17.DOM .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17.1 Accediendo a los nodos .
.
.
17.2 Modificando los nodos
.
.
17.3 Creando y Eliminando nodos .
17.4 Objetos DOM sólo de HTML .
.
17.5 Selección Avanzada de Elementos .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
18.Eventos .
.
.
.
.
.
.
.
.
.
.
18.1 Capturando eventos .
.
18.2 Deteniendo el flujo de los eventos .
.
18.3 Delegación de eventos
18.4 Eventos con jQuery .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19.JSON .
.
.
.
.
.
.
.
.
.
.
.
.
.
20.AJAX .
.
.
.
.
.
.
.
.
.
.
.
.
20.1 Haciendo la petición .
.
20.2 Procesando la respuesta .
.
20.3 AJAX con jQuery .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
21.Expresiones Regulares .
.
21.1 Propiedades de los Objetos RegExp .
.
21.2 Métodos de los Objetos RegExp .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
34
36
38
40
42
42
42
47
49
50
51
53
53
55
55
57
57
59
60
61
62
65
66
67
68
72
72
74
74
75
77
79
80
81
81
84
84
85
ÍNDICE GENERAL
21.3 Métodos de String que aceptan Expresiones Regulares .
21.4 Sintaxis de las Expresiones Regulares
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
85
87
1. Prologo
Este libro contiene la primera parte de los materiales que he ido realizando para diferentes
trainings JAVASCRIPT impartidos desde 2010.
Esta primera parte abarca desde lo más basico hasta un nivel intermedio que incluye:
• Las bases de javascript como lenguaje de programacion (variables, operadores, condicio-
nales, bucles, tipos datos, etc…)
• Conceptos importantes asociados al lenguaje y como manejarlos (JSON, AJAX, eventos,
dom, bom)
• Algunos conceptos un poco mas avanzados pero fundamentales para entener el javascript
actual (closures, expresiones regulares, objetos)
Los conceptos cubiertos en este libro te permitiran trabajar y comprender el javascript del 90%
de los proyectos
Espero que este libro te ayude a entender/implementar el codigo javascript que necesites.
Cualquier feedback será bien recibido :)
1.1 Referencias
Ademas de los enlaces reflejados, este material está basado en los siguientes libros:
• JavaScript: The Good Parts by Douglas Crockford
• Object-Oriented JavaScript by Stoyan Stefanov
• JavaScript Patterns by Stoyan Stefanov
1.2 Agradecimientos
Gracias a @gemmabeltra por la super-portada del libro (…y por aguantarme en general)
A @amischol por elevar mi nivel de javascript y el de todos los que hemos trabajado a su lado
(cuando nosotros vamos, él ya tiene su chalet alli montado)
A @cvillu por animarme a escribir el libro y descubrirme LeanPub (South-Power!!!)
A @crossrecursion por nuestras charlas/reuniones hablando de Javascript (me excitas… intelec-
tualmente)
Y a @softonic por darme la oportunidad de impartir los trainings JS y rodearme de tanta gente
crack en JavaScript. No
Comentarios de: Apuntes de Javascript - Nivel intermedio (0)
No hay comentarios