Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion es/Copyright.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ chapter:
<br/>
<!-- markdownlint-restore -->

Aprenda JavaScript: Edición para principiantes
**Aprenda JavaScript: Edición para principiantes**
Primera Edición

Copyright © 2023 por Suman Kunwar
Expand Down
2 changes: 1 addition & 1 deletion es/Credits.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ chapter:
<tr>
<td align="center">
<a href="https://github.com/sumn2u">
<img src="https://avatars.githubusercontent.com/u/6531541?v=4" alt="Profile Picture" style="border-radius: 50%; width: 100px; height: 100px;" />
<img src="https://avatars.githubusercontent.com/u/6531541?v=4" alt="Fotografía del perfil" style="border-radius: 50%; width: 100px; height: 100px;" />
<br/>
<sub><b>Suman Kunwar</b></sub>
</a>
Expand Down
2 changes: 2 additions & 0 deletions es/Preface.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@ Una característica destacada de "Aprender JavaScript" es su enfoque práctico.

Ideas complejas como cierres (closures en inglés) y programación asincrónica se desmitifican mediante explicaciones intuitivas y ejemplos prácticos. El énfasis en la claridad y la simplicidad permite a los estudiantes de todos los niveles captar y retener los conceptos clave de manera efectiva. El libro está estructurado en tres partes, y los primeros 14 capítulos profundizan en los conceptos centrales. Los cuatro capítulos siguientes profundizan en la utilización de JavaScript para la programación de navegadores web, mientras que los dos últimos capítulos cubren diversos temas y ofrecen ejercicios. La sección Varios explora temas y escenarios importantes relacionados con la programación JavaScript, seguidos de ejercicios para practicar.

El curso cubre temas adicionales como preguntas de entrevistas, patrones de diseño, conceptos de sistemas de archivos y ES6 para brindar una comprensión integral del lenguaje. El enfoque está en escribir código eficiente y fácil de mantener, lo cual es valioso para quienes buscan empleo y para proyectos personales.

En conclusión, "Aprende JavaScript: Edición para principiantes" es una compañía esencial para quienes buscan dominar JavaScript y sobresalir en el desarrollo web. Con su cobertura integral, enfoque práctico, explicaciones claras, enfoque en aplicaciones del mundo real y compromiso con el aprendizaje continuo, este libro constituye un recurso valioso. Al sumergirse en su contenido, los lectores obtendrán las habilidades y el conocimiento necesarios para crear aplicaciones web dinámicas e interactivas, liberando todo su potencial como desarrolladores de JavaScript.
10 changes: 4 additions & 6 deletions es/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
chapter: 1
pageNumber: 7
pageNumber: 9
description: JavaScript es un lenguaje de programación de alto nivel, interpretado y de tipo dinámico que se utiliza principalmente para el desarrollo web. Es una de las tecnologías centrales utilizadas para crear sitios web y aplicaciones web interactivos y dinámicos.
---
# Capítulo 1
Expand All @@ -22,20 +22,18 @@ JavaScript (_JS para abreviar_) es el lenguaje de programación que se usa para
Inicialmente, fue creado para dar vida a las páginas web y solo podía ejecutarse en un navegador. Ahora se ejecuta en cualquier dispositivo que admita el motor JavaScript. Los objetos estándar como [Array](./arrays/README.md), [Date](./date-and-time.md) y [Math](./numbers/math.md) están disponibles en JavaScript, así como operadores, estructuras de control y declaraciones. _JavaScript del lado del cliente_ y _JavaScript del lado del servidor_ son las versiones extendidas del JavaScript principal.

* _JavaScript del lado del cliente_ permite la mejora y manipulación de páginas web y navegadores de clientes. Las respuestas a eventos del usuario, como clics del mouse, entrada de formularios y navegación de páginas, son algunos de sus ejemplos.
* _JavaScript del lado del servidor_ permite el acceso a servidores, bases de datos y sistemas de archivos.
* [_JavaScript del lado del servidor_](./server-side/README.md) permite el acceso a servidores, bases de datos y sistemas de archivos.

JavaScript es un lenguaje interpretado. Mientras ejecuta Javascript, un intérprete interpreta cada línea y la ejecuta. El navegador moderno utiliza la tecnología Just In Time (JIT) para la compilación, que compila JavaScript en un código de bytes ejecutable.
JavaScript es un lenguaje interpretado. Mientras ejecuta Javascript, un intérprete interpreta cada línea y la ejecuta. El navegador moderno utiliza la tecnología [Just In Time (JIT)](https://hacks.mozilla.org/2017/02/a-crash-course-in-just-in-time-jit-compilers/) para la compilación, que compila JavaScript en un código de bytes ejecutable.

{% hint style="info" %}
"LiveScript" fue el nombre inicial dado a JavaScript.
{% endhint %}

### Código y qué hacer con él
### Código y qué hacer con él y Convenciones tipográficas

_Código_ son las instrucciones escritas que componen un programa. Aquí, muchos capítulos contienen mucho código y es importante leer y escribir código como parte del aprendizaje de programación. No se limite a leer rápidamente los ejemplos: léalos atentamente y trate de comprenderlos. Esto puede resultar difícil al principio, pero con la práctica mejorará. Lo mismo ocurre con los ejercicios: asegúrese de intentar escribir una solución antes de asumir que los comprende. También es útil intentar ejecutar las soluciones de los ejercicios en un intérprete de JavaScript, ya que esto le permitirá ver si su código funciona correctamente y puede animarlo a experimentar e ir más allá de los ejercicios.

### Convenciones tipográficas

Aquí, el texto escrito en una fuente monoespaciada representa elementos de un programa. Puede ser un fragmento autónomo o una referencia a parte de un programa cercano. Los programas, como el que se muestra a continuación, se escriben de esta manera:

```javascript
Expand Down
30 changes: 29 additions & 1 deletion es/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,29 @@
- [For](loops/for.md)
- [While](loops/while.md)
- [Do...While](loops/dowhile.md)
- [Continue](loops/continue.md)
- [Break](loops/break.md)
- [Funciones](functions/README.md)
- [Funciones de orden superior](functions/higher-order.md)
- [Funciones recursivas](functions/recursive-functions.md)
- [Cierres](functions/closures.md)
- [Set Interval](functions/set-interval.md)
- [Set Timeout](functions/set-timeout.md)
- [Operador de resto](functions/rest-operator.md)
- [Palabra clave this](functions/this-keyword.md)
- [Elevación (Hoisting)](functions/hoisting.md)
- [Captadores y definidores (Getters and Setters)](functions/getters-setters.md)
- [Objetos](objects/README.md)
- [Propiedades](objects/properties.md)
- [Mutable](objects/mutable.md)
- [Referencia](objects/reference.md)
- [Prototype](objects/prototype.md)
- [Operador Delete](objects/delete.md)
- [Enumeración](objects/enumeration.md)
- [Funciones factoría](objects/factory-functions.md)
- [Funciones Constructor](objects/constructor-functions.md)
- [Propiedad Constructor](objects/constructor-property.md)
- [Naturaleza dinámica](objects/dynamic-nature.md)
- [Fecha y hora](date-and-time.md)
- [JSON](json.md)
- [Manejo de errores](error-handling/README.md)
Expand All @@ -79,7 +93,7 @@
- [Async/Await](promise-async-await/async-await.md)
- [Misceláneas](miscellaneous/README.md)
- [Literales de plantilla](miscellaneous/template-literals.md)
- [Hoisting (Alzado)](miscellaneous/hoisting.md)
- [Hoisting (Elevación)](miscellaneous/hoisting.md)
- [Currying](miscellaneous/currying.md)
- [Polyfills y transpiladores](miscellaneous/polyfills-and-transpilers.md)
- [Lista enlazada](miscellaneous/linked-list.md)
Expand Down Expand Up @@ -120,6 +134,20 @@
- [Funciones flecha](es6-concepts/arrow-functions.md)
- [Desestructurando](es6-concepts/destructuring.md)
- [Literales de plantilla](es6-concepts/template-literals.md)
- [Recursos de animación](animation-resources/README.md)
- [GSAP](animation-resources/gsap.md)
- [Anime JS](animation-resources/animejs.md)
- [Three JS](animation-resources/threejs.md)
- [Velocity JS](animation-resources/velocityjs.md)
- [React Spring](animation-resources/react-spring.md)
- [Framer Motion](animation-resources/framer-motion.md)
- [JavaScript detrás de escena](behind-scenes/README.md)
- [Pila de llamadas](behind-scenes/call-stack.md)
- [Motor](behind-scenes/engine.md)
- [Bucle de eventos](behind-scenes/event-loop.md)
- [Contexto de ejecución](behind-scenes/execution-context.md)
- [Montón de memoria](behind-scenes/memory-heap.md)
- [Entorno de ejecución](behind-scenes/runtime-environment.md)
- [Referencias](References.md)
- [Recursos](resources.md)
- [Créditos](Credits.md)
51 changes: 51 additions & 0 deletions es/animation-resources/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
layout: editorial
chapter: 26
pageNumber: 252
description: Recursos de animación de JavaScript, incluidas bibliotecas, tutoriales, artículos y marcos para crear animaciones atractivas.
---

# Capítulo 26

## Recursos de animación

Las animaciones en JavaScript son una forma eficaz de crear experiencias de usuario atractivas en la Web. En este capítulo se tratarán diversos recursos, incluidas bibliotecas, tutoriales, artículos y marcos de trabajo, que ayudan a los desarrolladores a crear animaciones con JavaScript.

## Introducción a las animaciones de JavaScript

Las animaciones de JavaScript permiten a los desarrolladores crear contenido web dinámico y visualmente atractivo. Las animaciones se pueden utilizar para diversos fines, como mejorar las interfaces de usuario, proporcionar comentarios y hacer que el contenido sea más atractivo.

### Bibliotecas

Las bibliotecas de animación de JavaScript facilitan la creación de animaciones complejas. Estas son algunas bibliotecas populares:

1. **[GSAP (GreenSock Animation Platform)](https://greensock.com/gsap/)**: Una potente biblioteca para crear animaciones de alto rendimiento.
2. **[Anime.js](https://animejs.com/)**: Una biblioteca ligera para gestionar animaciones.
3. **[Three.js](https://threejs.org/)**: Una biblioteca para crear animaciones 3D.
4. **[Velocity.js](http://velocityjs.org/)**: Un motor de animación rápido.

### Tutoriales

Para comenzar a utilizar animaciones en JavaScript, consulte estos tutoriales:

1. **[MDN Web Docs: Usando animaciones CSS](https://developer.mozilla.org/es/docs/Web/CSS/CSS_Animations/Using_CSS_animations)**: Una guía completa sobre animaciones CSS.
2. **[JavaScript.info: JavaScript Animations](https://javascript.info/js-animation/)**: Una introducción a las animaciones de JavaScript.
3. **[GreenSock Learning Resources](https://greensock.com/learning/)**: Tutoriales y recursos para aprender GSAP.

### Marcos de trabajo (Frameworks, en inglés)

Los marcos de trabajo proporcionan un enfoque estructurado para crear animaciones. Algunos marcos de trabajo populares son:

1. **[React Spring](https://react-spring.io/)**: Una biblioteca de animación basada en física de resortes para React.
2. **[Framer Motion](https://www.framer.com/motion/)**: Una biblioteca de movimiento lista para producción para React.

En este capítulo, exploraremos los siguientes temas en detalle:

* [Introducción a GSAP](./gsap.md)
* [Creando animaciones con Anime.js](./animejs.md)
* [Animaciones 3D con Three.js](./threejs.md)
* [Animaciones rápidas con Velocity.js](./velocityjs.md)
* [Uso de React Spring para animaciones](./react-spring.md)
* [Animación con Framer Motion](./framer-motion.md)

Profundicemos en cada tema para comprender cómo utilizar estos recursos de manera efectiva.
103 changes: 103 additions & 0 deletions es/animation-resources/animejs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
---
chapter: 26
pageNumber: 254
description: Creación de animaciones con Anime.js, una biblioteca de animación JavaScript ligera.
---

# Creación de animaciones con Anime.js

Anime.js es una biblioteca de animación de JavaScript liviana con una API simple pero poderosa.

## Instalación

Puedes incluir Anime.js en tu proyecto usando npm:

```bash
npm install animejs
```

O puedes utilizar un CDN:

```html
<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js"></script>
```

## Animación básica

A continuación se muestra un ejemplo sencillo del uso de Anime.js para animar un elemento:

```html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Animación Anime.js</title>
</head>
<body>
<div id="box" style="width:100px; height:100px; background-color:red;"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js"></script>
<script>
anime({
targets: '#box',
translateX: 250,
duration: 1000
});
</script>
</body>
</html>
```

## Animación avanzada

Anime.js proporciona varias funciones para animaciones avanzadas, como fotogramas clave, línea de tiempo y suavizado.

- **Fotogramas clave:**
Los fotogramas clave permiten definir varias etapas de una animación. A continuación, se muestra un ejemplo:

```javascript
anime({
targets: '#box',
keyframes: [
{translateX: 100},
{translateY: 100},
{translateX: 0},
{translateY: 0}
],
duration: 4000
});
```

- **Línea de tiempo:**
Las líneas de tiempo permiten secuenciar animaciones. A continuación, se muestra un ejemplo:

```javascript
var tl = anime.timeline({
easing: 'easeOutExpo',
duration: 750
});

tl.add({
targets: '#box',
translateX: 250
}).add({
targets: '#box',
translateY: 250
}, '-=500'); // Comienza 500 ms antes de que finalice la animación anterior.
```

- **Suavizado:**
Anime.js ofrece una variedad de opciones de suavizado para que las animaciones se vean más naturales. A continuación, se muestra un ejemplo:

```javascript
anime({
targets: '#box',
translateX: 250,
duration: 1000,
easing: 'easeInOutQuad'
});
```

{% hint style="info" %}
Para obtener más detalles y ejemplos, consulte la documentación de Anime.js.
{% endhint %}
106 changes: 106 additions & 0 deletions es/animation-resources/framer-motion.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
---
chapter: 26
pageNumber: 255
description: Uso de Framer Motion para animaciones en aplicaciones React.
---

# Animación con Framer Motion

Framer Motion es una biblioteca de movimiento lista para producción para React. Facilita la creación de animaciones complejas.

## Instalación

Puedes incluir Framer Motion en tu proyecto usando npm:

```bash
npm install framer-motion
```

## Animación básica

A continuación se muestra un ejemplo sencillo del uso de Framer Motion para animar un componente:

```javascript
import React from 'react';
import { motion } from 'framer-motion';

const AnimatedComponent = () => {
return (
<motion.div animate={{ x: 100 }} transition={{ duration: 1 }}>
Me moveré hacia la derecha
</motion.div>
);
};

export default AnimatedComponent;
```

## Animación avanzada

Framer Motion proporciona varias funciones para animaciones avanzadas, como fotogramas clave, gestos y animaciones de diseño.

- **Fotogramas clave:**
Los fotogramas clave permiten definir varias etapas de una animación. A continuación, se muestra un ejemplo:

```javascript
import React from 'react';
import { motion } from 'framer-motion';

const KeyframeComponent = () => {
return (
<motion.div
animate={{ x: [0, 100, 0] }}
transition={{ duration: 2, ease: 'easeInOut' }}
>
Me moveré de un lado a otro
</motion.div>
);
};

export default KeyframeComponent;
```

- **Gestos**
Framer Motion te permite crear animaciones basadas en los gestos del usuario. Aquí tienes un ejemplo:

```javascript
import React from 'react';
import { motion } from 'framer-motion';

const GestureComponent = () => {
return (
<motion.div
drag
dragConstraints={{ left: -100, right: 100, top: -100, bottom: 100 }}
>
Arrástrame por ahí
</motion.div>
);
};

export default GestureComponent;
```

- **Animaciones de diseño**
Framer Motion facilita la animación de cambios de diseño. A continuación, se muestra un ejemplo:

```javascript
import React, { useState } from 'react';
import { motion } from 'framer-motion';

const LayoutAnimationComponent = () => {
const [isOpen, setIsOpen] = useState(false);

return (
<motion.div layout onClick={() => setIsOpen(!isOpen)} style={{ background: 'lightblue', padding: '10px' }}>
{isOpen ? 'Haga clic para contraer' : 'Haga clic para expandir'}
</motion.div>
);
};

export default LayoutAnimationComponent;
```

{% hint style="info" %}
Para obtener más detalles y ejemplos, consulte la documentación de Framer Motion.
{% endhint %}
Loading
Loading