1. Libros
  2. Aprender a desarrollar con JavaScript (3ª edición)

Aprender a desarrollar con JavaScript (3ª edición)

  • Acceso ilimitado 24/7
  • Todos los libros online de ENI
  • Novedades todos los meses
  • Acceso 100% online
  • Disponible
  • Envío gratis a partir de 25 € de compra
  • Versión online gratis
  • Acceso gratuito a todos nuestros libros online durante 1 hora por toda compra
  • Consulta inmediata
  • Versión HTML online
  • Acceso ilimitado 24/7

Presentación

Este libro, que trata sobre el aprendizaje en el desarrollo con JavaScript, se dirige a los lectores que deseen adquirir las habilidades necesarias para dominar esta área, fundamental en los desarrollos Web.

De hecho, incluso aunque existen soluciones y aplicaciones que permiten esquivar el conocimiento del lenguaje JavaScript, su dominio es un objetivo esencial para adquirir una verdadera destreza en el dominio de las tecnologías de la Web 2.0.

Partiendo de la base de que el lector solo tiene conocimientos básicos de programación, el autor comienza recordando y aportando conocimientos sobre algoritmia. A continuación, explica los conceptos principales del lenguaje JavaScript. Los diferentes conceptos, principios o funcionalidades, se descubren a través de ejemplos concretos, fácilmente reutilizables en otros desarrollos.

El libro permitirá al lector aumentar progresivamente sus competencias sobre JavaScript, mostrando las interacciones con otras tecnologías web (o lenguajes), como el inevitable HTML, las hojas de estilo CSS, los lenguajes de script orientados al servidor como PHP. También se abordan, a través de ejemplos, aspectos tan importantes como la Programación Orientada a Objetos, las novedades de la versión ECMAScript 6, la manipulación del DOM o incluso la gestión de las cookies, el almacenamiento local y remoto, la geolocalización, el diseño y los gráficos de gestión.

En esta tercera edición, el autor ofrece ejemplos didácticos de utilización de JavaScript en un contexto servidor con la presentación del framework Angular y del servidor de aplicaciones Node.js. Para terminar, después de que JavaScript haya hecho un avance muy significativo en el mundo del desarrollo híbrido sobre smartphones y tabletas, el libro termina exponiendo de manera completa el framework Ionic 3 con muchos ejercicios que presentan la arquitectura y permiten abordar tranquilamente el desarrollo de aplicaciones más complejas.

Todos los capítulos del libro integran muchos ejemplos extensamente comentados y siguiendo una progresión lógica.

Hay elementos adicionales para descargar en el sitio web www.ediciones-eni.com.

Índice

  • Presentación del lenguaje JavaScript
    • 1. Definición y breve historia
    • 2. Requisitos previos para un aprendizaje sencillo del lenguaje
    • 3. Herramientas necesarias
    • 4. Posicionamiento de JavaScript respecto a otras tecnologías de desarrollo web (HTML, CSS, PHP...)
  • Desarrollo a partir de algoritmos
    • 1. Presentación de la noción de algoritmo
    • 2. Noción de variable
      • 2.1 Presentación de las nociones de variable y tipo
      • 2.2 Tipos básicos y operaciones asociadas
      • 2.3 Interés de los tipos
      • 2.4 Uso de variables en las expresiones
      • 2.5 Tabla resumen de los operadores
    • 3. Manipulación de las variables
      • 3.1 Nomenclatura de las variables
      • 3.2 Asignación
      • 3.3 Ejercicio n.°1: Inversión del contenido de dos variables en memoria
      • 3.4 Visualización de los resultados
      • 3.5 Ejercicio n.°2: Superficies de círculos
      • 3.6 Introducción por el teclado
      • 3.7 Ejercicio n.°3: Superficie y volumen de una esfera
    • 4. Funciones predefinidas
      • 4.1 Ejercicio n.°4: Visualización de la longitud de un nombre
      • 4.2 Ejercicio n.°5: Determinación de iniciales
    • 5. Procesamientos condicionados
      • 5.1 Ejercicio n.°6: Polinomio de segundo grado
      • 5.2 Ejercicio n.°7: Etiqueta del mes sin cifrar
      • 5.3 Ejercicio n.°8: Etiqueta del mes sin cifrar (Siguiente ... Finsiguiente)
    • 6. Estructuras iterativas
      • 6.1 Concepto de iteraciones
      • 6.2 Estructuras iterativas básicas
      • 6.3 Ejercicio n.°9: Media de 10 números
      • 6.4 Ejercicio n.°10: Media de una serie de n números
      • 6.5 Ejercicio n.°11: El común divisor más grande, por el método de las divisiones sucesivas
      • 6.6 Estructura iterativa Para
      • 6.7 Ejercicio n.°12: Cálculo de la media de 10 números
      • 6.8 Ejercicio n.°13: Deducir el número de vocales de una palabra
    • 7. Tabla de dimensión única
      • 7.1 Ejercicio n.°14: Contar los números pares en una tabla
    • 8. Tabla con dimensiones múltiples
      • 8.1 Ejercicio n.°15: Minihoja de cálculo
    • 9. Procedimientos, funciones y paso de argumentos
      • 9.1 Los objetivos
      • 9.2 Los procedimientos
      • 9.3 Ejercicio n.°16: Llamada de un procedimiento con paso de argumentos
      • 9.4 Las funciones
      • 9.5 Ejercicio n.°17: Llamada de una función con paso de argumentos
  • Conceptos principales del lenguaje JavaScript
    • 1. Metodología de aprendizaje
    • 2. Variables (declaración y tipado)
      • 2.1 Ejercicio n.°2: Superficies de círculos
      • 2.2 Ejercicio n.°3: Superficie y volumen de una esfera
      • 2.3 Ejercicio n.°4: Número de letras de una palabra
      • 2.4 Ejercicio n.°5: Determinación de las iniciales
  • Procesamiento condicionado
    • 1. Presentación de la sintaxis
    • 2. Ejemplos
      • 2.1 Ejercicio n.°6: Polinomio de segundo grado
      • 2.2 Ejercicio n.°8: Impresión de la etiqueta de un mes
  • Procesamiento iterativo (bucles)
    • 1. Presentación de la sintaxis de los bucles
    • 2. Bucle while
      • 2.1 Sintaxis
      • 2.2 Ejercicio n.°9: Media de 10 números que se introducirán con el teclado
      • 2.3 Ejercicio n.°10: Media de una serie de n números que se introducirán con el teclado
    • 3. Bucle do while
      • 3.1 Sintaxis
      • 3.2 Ejercicio n.°11: Media de una serie de n números que se introducirán con el teclado
    • 4. Bucle for
      • 4.1 Sintaxis
      • 4.2 Ejercicio n.°12: Media de una serie de 10 números que se introducirán con el teclado
      • 4.3 Ejercicio n.°13: Contar el número de vocales en una palabra
  • Tablas
    • 1. Tablas de dimensión única
      • 1.1 Sintaxis
      • 1.2 Ejercicio n.°14: Contar los números pares en una tabla
    • 2. Tablas de dimensiones múltiples
      • 2.1 Sintaxis
      • 2.2 Ejercicio n.°15: Minihoja de cálculo
  • Procedimientos y funciones
    • 1. Los procedimientos
      • 1.1 Sintaxis
      • 1.2 Ejercicio n.°16: Llamada de un procedimiento con argumentos
    • 2. Las funciones
      • 2.1 Sintaxis
      • 2.2 Ejercicio n.°17: Llamada de una función con argumentos
  • Enfoque orientado a "objetos" en JavaScript
    • 1. Introducción
    • 2. Programación orientada a objetos a través de ejemplos
      • 2.1 Secuencia 1: Declaración de los objetos JavaScript de manera "Inline"
      • 2.2 Secuencia 2: Creación de objetos JavaScript con un constructor
      • 2.3 Secuencia 3: Variables privadas en una instancia de objeto
      • 2.4 Secuencia 4: Paso de argumento(s) a un constructor
      • 2.5 Secuencia 5: No compartición de los métodos por las instancias de objetos
      • 2.6 Secuencia 6: Noción de prototipo
      • 2.7 Secuencia 7: Sobrecarga de un método
      • 2.8 Secuencia 8: Extensión de un prototipo
      • 2.9 Secuencia 9: Mecanismo de la herencia
      • 2.10 Secuencia 10: Límite de la herencia de la secuencia 9
      • 2.11 Secuencia 11: Un segundo límite a nuestra herencia
  • Principales objetos en JavaScript
    • 1. Presentación
    • 2. Los objetos básicos
      • 2.1 Objeto Array
      • 2.2 Objeto Date
      • 2.3 Objeto Math
      • 2.4 Objeto window
      • 2.5 Objeto navigator
      • 2.6 Objeto String
  • Las novedades de EcmaScript
    • 1. Presentación general
    • 2. Aportaciones a nivel de la Programación Orientada a Objetos
      • 2.1 Noción de prototipo
      • 2.2 Sobrecarga de un método
      • 2.3 Extensión de prototipo
      • 2.4 Herencia
      • 2.5 Primer ejemplo POO en EcmaScript 6
      • 2.6 Herencia en EcmaScript
      • 2.7 Métodos getter, setter y static en EcmaScript 6
    • 3. Funciones flecha (arrow functions)
      • 3.1 Ventajas de las funciones flecha
      • 3.2 Ejemplo
    • 4. Estructuras Map, Set y bucle for of
      • 4.1 Presentación general
      • 4.2 Ejemplo
    • 5. Ámbito de las variables (var o let)
      • 5.1 Presentación general
      • 5.2 Ejemplo
    • 6. Promesas (promise)
      • 6.1 Presentación general
      • 6.2 Ejemplo
    • 7. Desestructuración
      • 7.1 Presentación general
      • 7.2 Ejemplo
  • Utilizar formularios para introducir datos
    • 1. Controles en la entrada de datos con JavaScript
      • 1.1 Control de entrada de datos en un campo de texto
      • 1.2 Control del tipo numérico de una entrada de datos en un campo de texto
      • 1.3 Control de caracteres alfabéticos de una entrada de datos en un campo de texto
      • 1.4 Control de caracteres alfabéticos y numéricos de una entrada de datos en un campo de texto
      • 1.5 Control de la longitud de una entrada de datos en un campo de texto
      • 1.6 Control de entrada de datos en una dirección de e-mail
      • 1.7 Control de la selección de una lista desplegable (versión simplificada)
      • 1.8 Control de la selección en una lista desplegable (versión extendida)
      • 1.9 Control de selección con un botón de radio
      • 1.10 Control de la selección con casillas de selección
  • Modelo DOM
    • 1. Introducción
      • 1.1 Definición del DOM
      • 1.2 Definición de la arborescencia
    • 2. Aprendizaje del modelo DOM
      • 2.1 Script "Hello World"
      • 2.2 Diferencia entre write y writeln
      • 2.3 Gestión de los enlaces hipertextos
      • 2.4 Gestión de las imágenes
      • 2.5 Gestión de formularios y de sus etiquetas
      • 2.6 Gestión de los anchors
      • 2.7 Gestión de la navegación entre páginas web
      • 2.8 Visualización de las características generales del documento
      • 2.9 Gestión de los botones en los formularios
      • 2.10 Gestión de las tablas (etiqueta HTML table)
  • Exploración de flujo XML vía DOM
    • 1. Noción de flujo XML
    • 2. Ejemplos
      • 2.1 Ejemplo 1: Visualización del contenido de un e-mail codificado en XML
      • 2.2 Ejemplo 2: Lista de marcas de coches (archivo coches.xml)
      • 2.3 Ejemplo 3: Lista de las marcas de coches con un bucle
      • 2.4 Ejemplo 4: Lista de nodos conectados a la raíz
      • 2.5 Ejemplo 5: Lista de los campos (nodos) de cada coche
      • 2.6 Ejemplo 6: Sustitución de un valor de nodo
      • 2.7 Ejemplo 7: Acceso a los atributos
      • 2.8 Ejemplo 8: Acceso a un nodo padre
      • 2.9 Ejemplo 9: Recorrer hacia atrás los nodos
      • 2.10 Ejemplo 10: Sustitución sistemática de un valor de atributo
      • 2.11 Ejemplo 11: Conversión XML en HTML
      • 2.12 Ejemplo 12: Eliminación de un nodo en un flujo XML
  • Gestión de las cookies en JavaScript
    • 1. Noción de cookie
    • 2. Escritura de una cookie
    • 3. Lectura de una cookie
    • 4. Eliminación de una cookie
  • Almacenamiento local de datos
    • 1. Presentación general de las soluciones
      • 1.1 Almacenamiento con sessionStorage
      • 1.2 Almacenamiento con localStorage
    • 2. Implementación de Web Storage a través de ejemplos
      • 2.1 Ejemplo 1: Almacenamiento por localStorage de cadenas de caracteres
      • 2.2 Ejemplo 2: Almacenamiento en el localStorage de un objeto JavaScript
  • Almacenamiento remoto: formato XML
    • 1. Presentación general de la solución
    • 2. Implementación del almacenamiento remoto a través de ejemplos
      • 2.1 Ejemplo 1: Acceso Ajax sobre BDD MySQL (lista de los coches)
      • 2.2 Ejemplo 2: Acceso MySQL vía Ajax
  • Almacenamiento remoto: formato JSON
    • 1. Presentación general de la solución
    • 2. Implementación del almacenamiento remoto a través de ejemplos
      • 2.1 Ejemplo 1: Presentación del sistema de notación JSON
      • 2.2 Ejemplo 2: Lectura de un archivo JSON con XMLHttpRequest
      • 2.3 Ejemplo 3: Lectura de un archivo JSON con XMLHttpRequest y un script servidor en PHP
      • 2.4 Ejemplo 4: Lectura de una tabla MySQL con XMLHttpRequest (servidor PHP y flujo JSON)
      • 2.5 Ejemplo 5: Recodificación del ejemplo 4 con una lista desplegable
  • Geolocalización
    • 1. Principio de la geolocalización
    • 2. Ejemplos de aplicaciones de geolocalización
      • 2.1 Ejemplo 1: Visualización del mapa del centro de España
      • 2.2 Ejemplo 2: Visualización del mapa del centro de España (marcador)
      • 2.3 Ejemplo 3: Visualización del mapa del centro de España (marcador y círculos de población)
      • 2.4 Ejemplo 4: Visualización del mapa del centro de España (información meteorológica)
      • 2.5 Ejemplo 5: Visualización del mapa de Madrid (con fotos de los sitios importantes)
      • 2.6 Ejemplo 6: Visualización del mapa de Madrid (Street View)
  • Diseño (HTML5 CANVAS)
    • 1. Presentación del API HTML5 CANVAS
    • 2. Ejemplos de aplicaciones del elemento <canvas>
      • 2.1 Ejemplo 1: Dibujar un cuadrado sencillo
      • 2.2 Ejemplo 2: Dibujar una matriz de TicTacToe
      • 2.3 Posibles mejoras en el conjunto del TicTacToe
  • Gráficos de gestión
    • 1. Diferentes soluciones de diseño de gráficos de gestión
    • 2. Ejemplos de uso de los API de Google Charts
      • 2.1 Ejemplo 1: Dibujar un histograma
      • 2.2 Ejemplo 2: Representación de un gráfico de sectores
      • 2.3 Ejemplo 3: Representación de un mapa
  • Framework AngularJS
    • 1. Presentación general
    • 2. Nociones básicas
      • 2.1 Primer ejemplo
      • 2.2 Directiva ng-bind
      • 2.3 Directiva ng-init
      • 2.4 Evaluación de una expresión
      • 2.5 Ejemplo de resumen
    • 3. Manipular tablas de memoria y objetos
      • 3.1 Uso de una tabla
      • 3.2 Uso de un objeto
    • 4. Módulo y controlador
      • 4.1 Ejemplo utilizando un módulo y un controlador
      • 4.2 Directiva personal
      • 4.3 Método personal
      • 4.4 Controlador en un archivo externo
      • 4.5 Introducir datos con zonas de texto
    • 5. Bucles y visualización en modo tabla
      • 5.1 Iteración sobre una tabla de datos
      • 5.2 Iteración sobre una tabla de datos y un filtro
      • 5.3 Iteración sobre una tabla de datos y una ordenación
      • 5.4 Iteración sobre una tabla de datos y una tabla HTML
      • 5.5 Filtrado de una tabla mediante una zona de texto
    • 6. Acceso a un servidor de datos remoto (servidor PHP)
      • 6.1 Lista simple a partir de una tabla MySQL
      • 6.2 Lista filtrada a partir de una tabla MySQL
      • 6.3 Insertar un registro en una tabla MySQL
    • 7. Controles de introducción de datos en los formularios
      • 7.1 Control para introducir datos en una zona de texto
      • 7.2 Control para introducir los datos de una dirección de correo electrónico
      • 7.3 Control para introducir datos en una zona de texto requerida
      • 7.4 Lista desplegable para escoger una marca
      • 7.5 Lista desplegable más avanzada para seleccionar una marca
      • 7.6 Lista desplegable todavía más avanzada para seleccionar una marca
      • 7.7 Lista desplegable asociada a una búsqueda MySQL
      • 7.8 Directivas ng-click y ng-mouseover
      • 7.9 Directivas ng-show y ng-mouseleave
      • 7.10 Gestión del tiempo (temporizador)
      • 7.11 Gestión de las opciones mediante botones de radio
      • 7.12 Gestión de las opciones mediante casillas de selección
  • Framework Node.js
    • 1. Presentación general
    • 2. Instalación de Node.js
    • 3. Ejecución del entorno Node.js
    • 4. Primer script Node.js que muestra "Hello World"
      • 4.1 Presentación general
      • 4.2 Código fuente
      • 4.3 Ejecución
    • 5. Segundo script que muestra «Hello World» (versión con Content-Type)
      • 5.1 Presentación general
      • 5.2 Código fuente
      • 5.3 Ejecución
    • 6. Tercer script que muestra «Hello World» (versión HTML)
      • 6.1 Presentación general
      • 6.2 Código fuente
      • 6.3 Ejecución
    • 7. Gestión de las URL
      • 7.1 Presentación general
      • 7.2 Código fuente
      • 7.3 Ejecución
    • 8. Recuperar parámetros de la URL
      • 8.1 Presentación general
      • 8.2 Código fuente
      • 8.3 Ejecución
    • 9. Detectar el evento close en el servidor
      • 9.1 Presentación general
      • 9.2 Código fuente
      • 9.3 Ejecución del servidor node_06.js
    • 10. Creación de un objeto con su propio evento
      • 10.1 Presentación general
      • 10.2 Código fuente
      • 10.3 Ejecución
    • 11. Mostrar el primer registro de una tabla MySQL (versión 1)
      • 11.1 Presentación general
      • 11.2 Código fuente
      • 11.3 Ejecución
    • 12. Mostrar el conjunto de registros de una tabla MySQL
      • 12.1 Presentación general
      • 12.2 Código fuente
      • 12.3 Ejecución
    • 13. Mostrar el primer registro de una tabla MySQL (versión 2)
      • 13.1 Presentación general
      • 13.2 Código fuente
      • 13.3 Ejecución
  • Desarrollo híbrido en JavaScript
    • 1. Enfoques de desarrollo para las aplicaciones móviles
      • 1.1 Desarrollos web, nativo y híbrido
        • 1.1.1 Aplicaciones web
        • 1.1.2 Aplicaciones nativas
        • 1.1.3 Aplicaciones híbridas
      • 1.2 Las tres principales plataformas
        • 1.2.1 Apple iOS
        • 1.2.2 Android
        • 1.2.3 Windows Phone, Windows 10 Móvil
    • 2. Panorama de las principales plataformas «híbridas»
      • 2.1 Ionic
      • 2.2 React Native
      • 2.3 Otras soluciones
  • Ionic 3, JavaScript en modo híbrido
    • 1. Presentación detallada del entorno Ionic
    • 2. Instalación del entorno Ionic 3
      • 2.1 La instalación de Node.js
      • 2.2 La instalación de los frameworks Ionic y Cordova
      • 2.3 Una primera aplicación de prueba
      • 2.4 Un IDE para modificar las scripts, Microsoft Visual Studio Code
      • 2.5 El código del proyecto ionic3-blank en detalle
  • Gestión del Hardware en Ionic
    • 1. Introducción
    • 2. Aplicación ioni3-infos_hardware
      • 2.1 Informe de la ejecución de la aplicación
      • 2.2 Análisis de los scripts principales
      • 2.3 Despliegue de la aplicación en Android
        • 2.3.1 Descarga de Android Studio
        • 2.3.2 Preparación de la aplicación Ionic para su transferencia en Android Studio
        • 2.3.3 Importación de la aplicación Ionic en Android Studio
        • 2.3.4 Prueba de la aplicación Ionic en Android Studio en modo AVD
        • 2.3.5 Prueba de la aplicación Ionic en el dispositivo «físico»
    • 3. Aplicación ionic3-battery_status
      • 3.1 Resultado de la ejecución de la aplicación
      • 3.2 Análisis de los scripts principales
    • 4. Aplicación ionic3-screen_orientation
      • 4.1 Resultado de la ejecución de la aplicación
      • 4.2 Análisis de los scripts principales
  • Componentes principales en Ionic
    • 1. Introducción
    • 2. Aplicación ionic3-paso_argumentos
      • 2.1 Resultado de la ejecución de la aplicación
      • 2.2 Análisis de los scripts principales
    • 3. Aplicación que integra ventanas modales
      • 3.1 Aplicación ionic3-alert_basic
      • 3.2 Aplicación ionic3-alert_confirm
      • 3.3 Aplicación ionic3-alert_checkbox
      • 3.4 Aplicación ionic3-alert_prompt
      • 3.5 Aplicación ionic3-alert_radio
  • Aplicaciones básicas en Ionic
    • 1. Introducción
    • 2. Aplicación ionic3-raices_polinomio
      • 2.1 Resultado de la ejecución de la aplicación
      • 2.2 Análisis de los scripts principales
    • 3. Aplicación ionic3-MCD
      • 3.1 Resultado de la ejecución de la aplicación
      • 3.2 Análisis de los scripts principales
  • Gestión de la persistencia en Ionic
    • 1. Introducción
    • 2. Aplicación ionic3-clipboard
      • 2.1 Resultado de la ejecución de la aplicación
      • 2.2 Análisis de los scripts principales
    • 3. Aplicación ionic3-local_storage
      • 3.1 Resultado de la ejecución de la aplicación
      • 3.2 Análisis de los scripts principales
    • 4. Aplicación ionic3-sqlite
      • 4.1 Resultado de la ejecución de la aplicación
      • 4.2 Análisis de los scripts principales
  • Gestión de las listas en Ionic
    • 1. Introducción
    • 2. Aplicación ionic3-list_basic
      • 2.1 Resultado de la ejecución de la aplicación
      • 2.2 Análisis de los scripts principales
    • 3. Aplicación ionic3-list_avatar
      • 3.1 Resultado de la ejecución de la aplicación
      • 3.2 Análisis de los scripts principales
    • 4. Aplicación ionic3-list_slider
      • 4.1 Resultado de la ejecución de la aplicación
      • 4.2 Análisis de los scripts principales
  • Gráficos de gestión en Ionic
    • 1. Introducción
    • 2. Aplicación ionic3-chartjs_bar
      • 2.1 Resultado de la ejecución de la aplicación
      • 2.2 Análisis de los scripts principales
      • 2.3 Script home.html
    • 3. Aplicación ionic3-chartjs_pie
      • 3.1 Resultado de la ejecución de la aplicación
      • 3.2 Análisis de los scripts principales
    • 4. Aplicación ionic3-chartjs_doughnut_json
      • 4.1 Resultado de la ejecución de la aplicación
      • 4.2 Análisis de los scripts principales
    • índice

Autor

Christian VIGOUROUXMás información

Christian VIGOUROUX es Profesor Asociado en la Universidad de Rennes 1 en Gestión (IAE- Instituto de Gestión de Rennes). Enseña informática de gestión desde hace casi 30 años a estudiantes universitarios y de máster, y coordina el contenido de los cursos sobre Técnicas de Internet, Ingeniería del Software e Informática Decisional del Máster en Sistemas de Información y Control de Gestión que dirige. Por otro lado, participa en proyectos de consultoría para grandes grupos acerca del despliegue de soluciones decisionales y la implementación de arquitecturas de aplicaciones.

Características

  • Nivel Medio a Experto
  • Número de páginas 821 páginas
  • Publicación mayo 2019
    • Encuadernación rústica - 17 x 21 cm
    • ISBN: 978-2-409-01984-5
    • EAN: 9782409019845
    • Ref. ENI: RIT3JASAP
  • Nivel Medio a Experto
  • Publicación mayo 2019
    • HTML
    • ISBN: 978-2-409-01985-2
    • EAN: 9782409019852
    • Ref. ENI: LNRIT3JASAP

Descargas

Al completar este formulario, acepta recibir información y comunicaciones comerciales sobre nuestros productos y servicios. Puede darse de baja de nuestra newsletter en cualquier momento. Si desea conocer más información acerca de nuestra política de protección de datos, pulse aquí.
  • Descargar los ejemplos del libro (27,5 Mo) - Capitulos 1 a 25
  • Descargar los ejemplos del libro (35 Mo) - Capitulos 26 a 27
  • Descargar los ejemplos del libro (41,2 Mo) - Capitulos 28 a 30