diff --git a/2-ui/3-event-details/8-onscroll/1-endless-page/solution.md b/2-ui/3-event-details/8-onscroll/1-endless-page/solution.md
index 10945ccd7..5f4e5d5f2 100644
--- a/2-ui/3-event-details/8-onscroll/1-endless-page/solution.md
+++ b/2-ui/3-event-details/8-onscroll/1-endless-page/solution.md
@@ -1,63 +1,63 @@
-The core of the solution is a function that adds more dates to the page (or loads more stuff in real-life) while we're at the page end.
+El núcleo de la solución es una función que añade más fechas a la página (o carga más cosas en la vida real) mientras estamos en el final de la página.
-We can call it immediately and add as a `window.onscroll` handler.
+Podemos llamarlo inmediatamente o agregarlo como un manejador de `window.onscroll`.
-The most important question is: "How do we detect that the page is scrolled to bottom?"
+La pregunta más importante es: "¿Cómo detectamos que la página se desplaza hasta el fondo?"
-Let's use window-relative coordinates.
+Usaremos las coordenadas de la ventana.
-The document is represented (and contained) within `` tag, that is `document.documentElement`.
+El documento está representado (y contenido) dentro de la etiqueta ``, que es `document.documentElement`.
-We can get window-relative coordinates of the whole document as `document.documentElement.getBoundingClientRect()`, the `bottom` property will be window-relative coordinate of the document bottom.
+Podemos obtener las coordenadas relativas a la ventana de todo el documento como `document.documentElement.getBoundingClientRect()`, la propiedad `bottom` será la coordenada relativa a la ventana del fondo del documento.
-For instance, if the height of the whole HTML document is `2000px`, then:
+Por ejemplo, si la altura de todo el documento es `2000px`, entonces:
```js
-// when we're on the top of the page
-// window-relative top = 0
+// cuando estamos en la parte superior de la página
+// window-relative top = 0 (relativo a la ventana, límite superior = 0 )
document.documentElement.getBoundingClientRect().top = 0
-// window-relative bottom = 2000
-// the document is long, so that is probably far beyond the window bottom
+// window-relative bottom = 2000 (relativo a la ventana, límite inferior = 2000)
+// el documento es largo, así que probablemente esté más allá del fondo de la ventana
document.documentElement.getBoundingClientRect().bottom = 2000
```
-If we scroll `500px` below, then:
+Si nos desplazamos `500px` abajo, entonces:
```js
-// document top is above the window 500px
+// la parte superior del documento está 500px por encima de la ventana
document.documentElement.getBoundingClientRect().top = -500
-// document bottom is 500px closer
+// la parte inferior del documento está 500px más cerca
document.documentElement.getBoundingClientRect().bottom = 1500
```
-When we scroll till the end, assuming that the window height is `600px`:
+Cuando nos desplazamos hasta el final, asumiendo que la altura de la venta es `600px`:
```js
-// document top is above the window 1400px
+// La parte superior del documento está 1400px sobre la ventana
document.documentElement.getBoundingClientRect().top = -1400
-// document bottom is below the window 600px
+// la parte inferior del documento está a 600px debajo de la ventana
document.documentElement.getBoundingClientRect().bottom = 600
```
-Please note that the `bottom` can't be `0`, because it never reaches the window top. The lowest limit of the `bottom` coordinate is the window height (we assumed it to be `600`), we can't scroll it any more up.
+Tened en cuenta que el fondo del documento `bottom` nunca puede ser `0`, porque nunca llega a la parte superior de la ventana. El límite más bajo de la coordenada `bottom` es la altura de la ventana (asumimos que es `600`), no podemos desplazarla más hacia arriba.
-We can obtain the window height as `document.documentElement.clientHeight`.
+Podemos obtener la altura de la ventana con `document.documentElement.clientHeight`.
-For our task, we need to know when the document bottom is not no more than `100px` away from it (that is: `600-700px`, if the height is `600`).
+Para nuestra tarea, necesitamos saber cuando tenemos el final del documento a unos `100px` (esto es: `600-700px`, si la altura es de `600`).
-So here's the function:
+Así que aquí está la función:
```js
function populate() {
while(true) {
- // document bottom
+ // final del documento
let windowRelativeBottom = document.documentElement.getBoundingClientRect().bottom;
- // if the user scrolled far enough (<100px to the end)
+ // si el usuario se desplaza lo suficiente (<100px hasta el final)
if (windowRelativeBottom < document.documentElement.clientHeight + 100) {
- // let's add more data
+ // vamos añadir más datos
document.body.insertAdjacentHTML("beforeend", `
Date: ${new Date()}
`);
}
}
diff --git a/2-ui/3-event-details/8-onscroll/1-endless-page/task.md b/2-ui/3-event-details/8-onscroll/1-endless-page/task.md
index 7c8d14fca..1819a55a8 100644
--- a/2-ui/3-event-details/8-onscroll/1-endless-page/task.md
+++ b/2-ui/3-event-details/8-onscroll/1-endless-page/task.md
@@ -2,19 +2,19 @@ importance: 5
---
-# Endless page
+# Página sin fin
-Create an endless page. When a visitor scrolls it to the end, it auto-appends current date-time to the text (so that a visitor can scroll more).
+Crear una página interminable. Cuando un visitante la desplace hasta el final, se auto-añadirá la fecha y hora actual al texto (así el visitante podrá seguir desplazándose)
-Like this:
+Así:
[iframe src="solution" height=200]
-Please note two important features of the scroll:
+Por favor tenga en cuenta dos características importantes del desplazamiento:
-1. **The scroll is "elastic".** We can scroll a little beyond the document start or end in some browsers/devices (empty space below is shown, and then the document will automatically "bounces back" to normal).
-2. **The scroll is imprecise.** When we scroll to page end, then we may be in fact like 0-50px away from the real document bottom.
+1. **El scroll es "elástico".** En algunos navegadores/dispositivos podemos desplazarnos un poco más allá del inicio o final del documento (se muestra un espacio vacío abajo, y luego el documento "rebota" automáticamente a la normalidad).
+2. **El scroll es impreciso.** Cuando nos desplazamos hasta el final de la página, podemos estar de hecho como a 0-50px del fondo del documento real.
-So, "scrolling to the end" should mean that the visitor is no more than 100px away from the document end.
+Así que, "desplazarse hasta el final" debería significar que el visitante no está a más de 100px del final del documento.
-P.S. In real life we may want to show "more messages" or "more goods".
+P.D. En la vida real podemos querer mostrar "más mensajes" o "más bienes".
diff --git a/2-ui/3-event-details/8-onscroll/2-updown-button/task.md b/2-ui/3-event-details/8-onscroll/2-updown-button/task.md
index c9f0f6225..042d4adfd 100644
--- a/2-ui/3-event-details/8-onscroll/2-updown-button/task.md
+++ b/2-ui/3-event-details/8-onscroll/2-updown-button/task.md
@@ -2,15 +2,15 @@ importance: 5
---
-# Up/down button
+# Botón para subir/bajar
-Create a "to the top" button to help with page scrolling.
+Crea un botón "ir arriba" para ayudar con el desplazamiento de la página.
-It should work like this:
-- While the page is not scrolled down at least for the window height -- it's invisible.
-- When the page is scrolled down more than the window height -- there appears an "upwards" arrow in the left-top corner. If the page is scrolled back, it disappears.
-- When the arrow is clicked, the page scrolls to the top.
+Debería funcionar así:
+- Mientras que la página no se desplace hacia abajo al menos la altura de la ventana... es invisible.
+- Cuando la página se desplaza hacia abajo más que la altura de la ventana -- aparece una flecha "hacia arriba" en la esquina superior izquierda. Si la página se desplaza hacia atrás desaparece.
+- Cuando se hace click en la flecha, la página se desplaza hacia arriba hasta el tope.
-Like this (top-left corner, scroll to see):
+Así (esquina superior izquierda, desplácese para ver):
[iframe border="1" height="200" link src="solution"]
diff --git a/2-ui/3-event-details/8-onscroll/3-load-visible-img/solution.md b/2-ui/3-event-details/8-onscroll/3-load-visible-img/solution.md
index 1649251b9..0fec50ea2 100644
--- a/2-ui/3-event-details/8-onscroll/3-load-visible-img/solution.md
+++ b/2-ui/3-event-details/8-onscroll/3-load-visible-img/solution.md
@@ -1,13 +1,13 @@
-The `onscroll` handler should check which images are visible and show them.
+El manejador `onscroll` debería comprobar qué imágenes son visibles y mostrarlas.
-We also want to run it when the page loads, to detect immediately visible images and load them.
+También queremos que se ejecute cuando se cargue la página, para detectar las imágenes visibles inmediatamente y cargarlas.
-The code should execute when the document is loaded, so that it has access to its content.
+El código debería ejecutarse cuando se cargue el documento, para que tenga acceso a su contenido.
-Or put it at the `` bottom:
+O ponerlo en la parte inferior del ``:
```js
-// ...the page content is above...
+// ...el contenido de la página está arriba...
function isVisible(elem) {
@@ -15,17 +15,17 @@ function isVisible(elem) {
let windowHeight = document.documentElement.clientHeight;
- // top elem edge is visible?
+ // ¿El borde superior del elemento es visible?
let topVisible = coords.top > 0 && coords.top < windowHeight;
- // bottom elem edge is visible?
+ // ¿El borde inferior del elemento es visible?
let bottomVisible = coords.bottom < windowHeight && coords.bottom > 0;
return topVisible || bottomVisible;
}
```
-The `showVisible()` function uses the visibility check, implemented by `isVisible()`, to load visible images:
+La función `showVisible()` utiliza el control de visibilidad, implementado por `isVisible()`, para cargar imágenes visibles:
```js
function showVisible() {
@@ -46,4 +46,4 @@ window.onscroll = showVisible;
*/!*
```
-P.S. The solution also has a variant of `isVisible` that "preloads" images that are within 1 page above/below the current document scroll.
+P.D. La solución tiene una variante de `isVisible` que "precarga" imágenes que están dentro de 1 página por encima/debajo del desplazamiento del documento actual.
diff --git a/2-ui/3-event-details/8-onscroll/3-load-visible-img/task.md b/2-ui/3-event-details/8-onscroll/3-load-visible-img/task.md
index 323788982..66958bbe3 100644
--- a/2-ui/3-event-details/8-onscroll/3-load-visible-img/task.md
+++ b/2-ui/3-event-details/8-onscroll/3-load-visible-img/task.md
@@ -2,29 +2,29 @@ importance: 4
---
-# Load visible images
+# Cargar imágenes visibles
-Let's say we have a slow-speed client and want to save their mobile traffic.
+Digamos que tenemos un cliente con baja velocidad de conexión y queremos cuidar su tarifa de datos.
-For that purpose we decide not to show images immediately, but rather replace them with placeholders, like this:
+Para ello decidimos no mostrar las imágenes inmediatemente, sino sustituirlas por marcadores de posición, como este:
```html
```
-So, initially all images are `placeholder.svg`. When the page scrolls to the position where the user can see the image -- we change `src` to the one in `data-src`, and so the image loads.
+Así que, inicialmente todas las imágenes son `placeholder.svg`. Cuando la página se desplaza a la posición donde el usuario puede ver la imagen -- cambiamos `src` a `data-src`, y así la imagen se carga.
-Here's an example in `iframe`:
+Aquí hay un ejemplo en `iframe`:
[iframe src="solution"]
-Scroll it to see images load "on-demand".
+Desplázate para ver las imagenes cargadas "bajo demanda".
-Requirements:
-- When the page loads, those images that are on-screen should load immediately, prior to any scrolling.
-- Some images may be regular, without `data-src`. The code should not touch them.
-- Once an image is loaded, it should not reload any more when scrolled in/out.
+Requerimientos:
+- Cuando la página se carga, las imágenes que están en pantalla deben cargarse inmediatamente, antes de cualquier desplazamiento.
+- Algunas imágenes pueden ser regulares, sin `data-src`. El código no debe tocarlas.
+- Una vez que una imagen se carga, no debe recargarse más cuando haya desplazamiento arriba/abajo.
-P.S. If you can, make a more advanced solution that would "preload" images that are one page below/after the current position.
+P.D. Si puedes, haz una solución más avanzada para "precargar" las imágenes que están más abajo/después de la posición actual.
-P.P.S. Only vertical scroll is to be handled, no horizontal scrolling.
+Post P.D. Sólo se debe manejar el desplazamiento vertical, no el horizontal.
diff --git a/2-ui/3-event-details/8-onscroll/article.md b/2-ui/3-event-details/8-onscroll/article.md
index 7b5cf4848..1b1efeb52 100644
--- a/2-ui/3-event-details/8-onscroll/article.md
+++ b/2-ui/3-event-details/8-onscroll/article.md
@@ -1,12 +1,12 @@
-# Scrolling
+# Desplazamiento
-The `scroll` event allows to react on a page or element scrolling. There are quite a few good things we can do here.
+El evento `scroll` permite reaccionar al desplazamiento de una página o elemento. Hay bastantes cosas buenas que podemos hacer aquí.
-For instance:
-- Show/hide additional controls or information depending on where in the document the user is.
-- Load more data when the user scrolls down till the end of the page.
+Por ejemplo:
+- Mostrar/ocultar controles o información adicional según el lugar del documento en el que se encuentre el/la usuario/a.
+- Cargar más datos cuando el/la usuario/a se desplaza hacia abajo hasta el final del documento.
-Here's a small function to show the current scroll:
+Aquí hay una pequeña función para mostrar el desplazamiento actual:
```js autorun
window.addEventListener('scroll', function() {
@@ -17,21 +17,21 @@ window.addEventListener('scroll', function() {
```online
In action:
-Current scroll = scroll the window
+Desplazamiento actual = Desplazamiento de la ventana
```
-The `scroll` event works both on the `window` and on scrollable elements.
+El evento `scroll` funciona tanto en `window` como en los elementos desplazables.
-## Prevent scrolling
+## Evitar el desplazamiento
-How do we make something unscrollable?
+¿Qué hacemos para que algo no se pueda desplazar?
-We can't prevent scrolling by using `event.preventDefault()` in `onscroll` listener, because it triggers *after* the scroll has already happened.
+No podemos evitar el desplazamiento utilizando `event.preventDefault()` oyendo al evento `onscroll`, porque este se activa *después* de que el desplazamiento haya ocurrido.
-But we can prevent scrolling by `event.preventDefault()` on an event that causes the scroll, for instance `keydown` event for `key:pageUp` and `key:pageDown`.
+Pero podemos prevenir el desplazamiento con `event.preventDefault()` en un evento que cause el desplazamiento, por ejemplo en el evento `keydown` para `key:pageUp` y `key:pageDown`.
-If we add an event handler to these events and `event.preventDefault()` in it, then the scroll won't start.
+Si añadimos un manejador de eventos a estos eventos y un `event.preventDefault()` en el manejador, entonces el desplazamiento no se iniciará.
-There are many ways to initiate a scroll, so it's more reliable to use CSS, `overflow` property.
+Hay muchas maneras de iniciar un desplazamiento, la más fiable es usar CSS, la propiedad `overflow`.
-Here are few tasks that you can solve or look through to see the applications on `onscroll`.
+Aquí hay algunas tareas que puedes resolver o mirar para ver las aplicaciones de `onscroll`.
diff --git a/Espanol-may2020.md b/Espanol-may2020.md
deleted file mode 100644
index 24a3d8c58..000000000
--- a/Espanol-may2020.md
+++ /dev/null
@@ -1,182 +0,0 @@
-Links Y MARCAS
-
-anteriores a la supersincronización de Valentina -comming soon-
-
-```
-*** Conflictos estructura ***
-Garbage collection (@PawFV) #151
-Constructor, operator "new" (@ezzep66) #160
-Map and Set (@vplentinax) #162
-Object.keys, values, entries (@ezzep66) #161
-Destructuring assignment (@ezzep66) #163
-JSON methods, toJSON (@ezzep66) #170
-```
-
-
-### An introduction
-
-* [X] [An Introduction to JavaScript](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/01-getting-started/1-intro) (@tscandalitta) #16 #16 CERRADO SIN MERGE
-* [X] [Manuals and specifications](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/01-getting-started/2-manuals-specifications) (@tiomno)
-* [X] [Code editors](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/01-getting-started/3-code-editors) (@lizzie136 ) #16 #16 CERRADO SIN MERGE
-* [ ] [Developer console](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/01-getting-started/4-devtools) (@ezzep66)
-
-### JavaScript Fundamentals
-
-* [X] [Hello, world!](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/02-first-steps/01-hello-world) (@victorze ) #31 VICTORZE NO FIRMO AGREEMENT
-* [X] [Code structure](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/02-first-steps/02-structure) (@victorze ) #32 VICTORZE NO FIRMO AGREEMENT
-* [X] [The modern mode, "use strict"](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/02-first-steps/03-strict-mode) (@SantiEspada )
-* [X] [Variables](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/02-first-steps/04-variables) (@javier123454321) #93 NO FIRMO AGREEMENT
-* [X] [Data types](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/02-first-steps/05-types) (@tscandalitta) #46
-* [X] [Interaction: alert, prompt, confirm](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/02-first-steps/06-alert-prompt-confirm) (@tscandalitta ) #49
-* [X] [Type Conversions](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/02-first-steps/07-type-conversions) (@tikoflano) #57
-* [ ] [Basic operators, maths](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/02-first-steps/08-operators) (@ezzep66) #187
-* [X] [Comparisons](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/02-first-steps/09-comparison)
-* [X] [Conditional operators: if, '?'](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/02-first-steps/10-ifelse) (@Giorgiosaud) #95 ?? BUENA, COMPLETA VARIOS ARCH, APROBADO SIN MERGE, CONFLICTOS, NO LA QUIERO PERDER!!
-* [X] [Logical operators](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/02-first-steps/11-logical-operators) (@Sjesc ) #47
-* [X] [Nullish coalescing operator '??'](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/02-first-steps/12-nullish-coalescing-operator) (@ddanielcruzz) #196
-* [X] [Loops: while and for](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/02-first-steps/13-while-for) (@Sjesc) #50
-* [ ] [The "switch" statement](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/02-first-steps/14-switch) (@rajcespedes)
-* [X] [Functions](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/02-first-steps/15-function-basics) (@Giorgiosaud) #96 ?????? BUENA Y COMPLETA E VARIOS ARCHIVOS, SIN MERGE, CONFLICTOS, NO LA QUIERO PERDER!!
-* [ ] [Function expressions](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/02-first-steps/16-function-expressions) (@ezzep66) #159
-* [ ] [Arrow functions, the basics](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/02-first-steps/17-arrow-functions-basics) (@ricardov03)
-* [ ] [JavaScript specials](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/02-first-steps/18-javascript-specials) (@Giorgiosaud) #99 ???? BUENA , SIN MERGE, CONFLICTOS, NO LA QUIERO PERDER!!
-
-### Code quality
-
-* [X] [Debugging in Chrome](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/03-code-quality/01-debugging-chrome) (@Giorgiosaud) #101 ?????? BUENA 5 ARCHIVOS, SIN MERGE, CONFLICTOS, NO LA QUIERO PERDER!!
-* [ ] [Coding Style](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/03-code-quality/02-coding-style) (@luisandia)
-* [ ] [Comments](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/03-code-quality/03-comments) (@Arnau-Ninerola)
-* [ ] [Ninja code](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/03-code-quality/04-ninja-code) (@Sjesc) #109
-* [ ] [Automated testing with Mocha](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/03-code-quality/05-testing-mocha) (@alexseik) #152
-* [ ] [Polyfills](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/03-code-quality/06-polyfills) (@Arnau-Ninerola)
-
-### Objects: the basics
-
-* [ ] [Objects](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/04-object-basics/01-object) (@lucasrdz994) #92
-* [ ] [Object copying, references](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/04-object-basics/02-object-copy) (@ddanielcruzz)
-* [ ] [Garbage collection](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/04-object-basics/03-garbage-collection) (@PawFV) #151 ??? OK, 2 APRoBADOS... conflicto estructura !!! le Dejé MSG en discord
-* [ ] [Object methods, "this"](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/04-object-basics/04-object-methods) (@martinivanalfonso)
-* [ ] [Constructor, operator "new"](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/04-object-basics/06-constructor-new) (@ezzep66) #160
-* [ ] [Optional chaining '?.'](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/04-object-basics/07-optional-chaining) (@vplentinax)
-* [ ] [Symbol type](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/04-object-basics/08-symbol) (@mariabp)
-* [ ] [Object to primitive conversion](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/04-object-basics/09-object-toprimitive) (@maurotikus)
-
-### Data types
-
-* [ ] [Methods of primitives](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/05-data-types/01-primitives-methods) (@joaquinelio) #105
-* [ ] [Numbers](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/05-data-types/02-number) (@joaquinelio)
-* [ ] [Strings](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/05-data-types/03-string) (@ferueda)
-* [ ] [Arrays](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/05-data-types/04-array) (@fcabanilla)
-* [ ] [Array methods](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/05-data-types/05-array-methods) (@inkcoming)
-* [ ] [Iterables](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/05-data-types/06-iterable) (@vplentinax) #179
-* [ ] [Map and Set](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/05-data-types/07-map-set) (@vplentinax) #162
-* [ ] [WeakMap and WeakSet](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/05-data-types/08-weakmap-weakset) (@vplentinax) #176
-* [ ] [Object.keys, values, entries](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/05-data-types/09-keys-values-entries) (@ezzep66) #161
-* [ ] [Destructuring assignment](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/05-data-types/10-destructuring-assignment) (@ezzep66) #163
-* [ ] [Date and time](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/05-data-types/11-date) (@cirmar)
-* [ ] [JSON methods, toJSON](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/05-data-types/12-json) (@ezzep66) #170
-
-### Advanced working with functions
-
-* [ ] [Recursion and stack](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/06-advanced-functions/01-recursion) (@PawFV) #155
-* [ ] [Rest parameters and spread syntax](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/06-advanced-functions/02-rest-parameters-spread) (@PawFV)
-* [ ] [Variable scope](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/06-advanced-functions/03-closure) (@vplentinax) #178
-* [ ] [The old "var"](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/06-advanced-functions/04-var) (@IngridGdesigns)
-* [ ] [Global object](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/06-advanced-functions/05-global-object) (@vplentinax) #181
-* [ ] [Function object, NFE](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/06-advanced-functions/06-function-object) (@vplentinax) #182
-* [ ] [The "new Function" syntax](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/06-advanced-functions/07-new-function) (@11joselu) #120
-* [ ] [Scheduling: setTimeout and setInterval](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/06-advanced-functions/08-settimeout-setinterval) (@vplentinax) #202
-* [ ] [Decorators and forwarding, call/apply](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/06-advanced-functions/09-call-apply-decorators) (@vplentinax) #205
-* [ ] [Function binding](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/06-advanced-functions/10-bind) (@vplentinax) #206
-* [ ] [Arrow functions revisited](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/06-advanced-functions/12-arrow-functions) (@vplentinax) #204
-
-### Object properties configuration
-
-* [ ] [Property flags and descriptors](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/07-object-properties/01-property-descriptors) (@kenliten) #183
-* [ ] [Property getters and setters](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/07-object-properties/02-property-accessors) (@rainvare) #194 NO FIRMO-----------------------------
-
-### Prototypes, inheritance
-
-* [ ] [Prototypal inheritance](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/08-prototypes/01-prototype-inheritance) (@cortizg) #191
-* [ ] [F.prototype](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/08-prototypes/02-function-prototype) (@cortizg) #192
-* [ ] [Native prototypes](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/08-prototypes/03-native-prototypes) (@cortizg) #193
-* [ ] [Prototype methods, objects without __proto__](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/08-prototypes/04-prototype-methods) (@cortizg) #195
-
-### Classes
-
-* [ ] [Class basic syntax](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/09-classes/01-class) (@zelezarof)
-* [ ] [Class inheritance](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/09-classes/02-class-inheritance) (@cortizg) #171
-* [ ] [Static properties and methods](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/09-classes/03-static-properties-methods) (@cortizg) #172
-* [ ] [Private and protected properties and methods](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/09-classes/04-private-protected-properties-methods) (@cortizg) #173
-* [ ] [Extending built-in classes](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/09-classes/05-extend-natives) (@cortizg) #174
-* [ ] [Class checking: "instanceof"](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/09-classes/06-instanceof) (@cortizg) #175
-* [ ] [Mixins](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/09-classes/07-mixins) (@cortizg) #177
-
-### Error handling
-
-* [ ] [Error handling, "try..catch"](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/10-error-handling/1-try-catch) (@cortizg) #180
-* [ ] [Custom errors, extending Error](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/10-error-handling/2-custom-errors) (@cortizg) #184
-
-### Promises, async/await
-
-* [X] [Introduction: callbacks](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/11-async/01-callbacks) (@lizzie136 )#14
-* [ ] [Promise](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/11-async/02-promise-basics) (@cortizg) #188
-* [ ] [Promises chaining](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/11-async/03-promise-chaining) (@cortizg) #189
-* [ ] [Error handling with promises](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/11-async/04-promise-error-handling) (@ddanielcruzz)
-* [ ] [Promise API](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/11-async/05-promise-api) (@ddanielcruzz)
-* [ ] [Promisification](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/11-async/06-promisify) (@Sjesc)
-* [ ] [Microtasks](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/11-async/07-microtask-queue) (@vplentinax)
-* [ ] [Async/await](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/11-async/08-async-await) (@aldarisbm)
-
-### Generators, advanced iteration
-
-* [ ] [Generators](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/12-generators-iterators/1-generators) (@rainvare)
-* [ ] [Async iterators and generators](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/12-generators-iterators/2-async-iterators-generators) (@vplentinax)
-
-### Modules
-
-* [X] [Modules, introduction](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/13-modules/01-modules-intro) (@ezzep66) #198
-* [ ] [Export and Import](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/13-modules/02-import-export) (@ezzep66) #208
-* [ ] [Dynamic imports](https://github.com/javascript-tutorial/es.javascript.info/blob/master/1-js/13-modules/03-modules-dynamic-imports) (@lolabarri) #118
-
-
-## Browser: Document, Events, Interfaces
-
-
-### Document
-
-* [X] [Browser environment, specs](https://github.com/javascript-tutorial/es.javascript.info/blob/master/2-ui/1-document/01-browser-environment) (@victorze) -----------no FIRMÓ -------------------
-* [X] [Walking the DOM](https://github.com/javascript-tutorial/es.javascript.info/blob/master/2-ui/1-document/03-dom-navigation) (@victorze)
-
-### Introduction to Events
-
-* [ ] [Introduction to browser events](https://github.com/javascript-tutorial/es.javascript.info/blob/master/2-ui/2-events/01-introduction-browser-events) (@spaceinvadev)
-
-### UI Events
-
-* [ ] [Mouse events](https://github.com/javascript-tutorial/es.javascript.info/blob/master/2-ui/3-event-details/1-mouse-events-basics) (@maksumi)
-* [ ] [Moving the mouse: mouseover/out, mouseenter/leave](https://github.com/javascript-tutorial/es.javascript.info/blob/master/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave) (@maksumi)
-* [ ] [Drag'n'Drop with mouse events](https://github.com/javascript-tutorial/es.javascript.info/blob/master/2-ui/3-event-details/4-mouse-drag-and-drop) (@maksumi)
-* [ ] [Pointer events](https://github.com/javascript-tutorial/es.javascript.info/blob/master/2-ui/3-event-details/6-pointer-events) (@maksumi)
-* [ ] [Keyboard: keydown and keyup](https://github.com/javascript-tutorial/es.javascript.info/blob/master/2-ui/3-event-details/7-keyboard-events) (@maksumi)
-* [ ] [Scrolling](https://github.com/javascript-tutorial/es.javascript.info/blob/master/2-ui/3-event-details/8-onscroll) (@maksumi)
-
-### Forms, controls
-
-* [ ] [Form properties and methods](https://github.com/javascript-tutorial/es.javascript.info/blob/master/2-ui/4-forms-controls/1-form-elements) (@amircp)
-
-## Network requests
-
-* [ ] [Fetch](https://github.com/javascript-tutorial/es.javascript.info/blob/master/5-network/01-fetch) (@JavyMB)
-
-## Storing data in the browser
-
-* [ ] [Cookies, document.cookie](https://github.com/javascript-tutorial/es.javascript.info/blob/master/6-data-storage/01-cookie) (@RyhazL)
-* [ ] [IndexedDB](https://github.com/javascript-tutorial/es.javascript.info/blob/master/6-data-storage/03-indexeddb) (@srobnu)
-
-## Animation
-
-* [X] [Bezier curve](https://github.com/javascript-tutorial/es.javascript.info/blob/master/7-animation/1-bezier-curve) (@tambaqui) #78
-* [ ] [CSS-animations](https://github.com/javascript-tutorial/es.javascript.info/blob/master/7-animation/2-css-animations) (@tambaqui )
-* [ ] [JavaScript animations](https://github.com/javascript-tutorial/es.javascript.info/blob/master/7-animation/3-js-animation) (@tambaqui)
-