Skip to content
Closed
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
5 changes: 5 additions & 0 deletions 1-js/01-getting-started/1-intro/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,13 @@ Ejemplos de tales restricciones incluyen:

Esta restricción es conocida como "política del mismo origen" ("Same Origin Policy"). Es posible la comunicación, pero ambas páginas deben acordar el intercambio de datos y también deben contener el código especial de JavaScript que permite controlarlo. Cubriremos esto en el tutorial.

<<<<<<< HEAD
De nuevo: esta limitación es para la seguridad del usuario. Una página de `http://algunsitio.com`, que el usuario haya abierto, no debe ser capaz de acceder a otra pestaña del navegador con la URL `http://gmail.com` y robar la información de esta otra página.
- JavaScript puede fácilmente comunicarse a través de la red con el servidor de donde la página actual proviene. Pero su capacidad para recibir información de otros sitios y dominios está bloqueada. Aunque sea posible, esto requiere un acuerdo explícito (expresado en los encabezados HTTP) desde el sitio remoto. Una vez más: esto es una limitación de seguridad.
=======
This limitation is, again, for the user's safety. A page from `http://anysite.com` which a user has opened must not be able to access another browser tab with the URL `http://gmail.com`, for example, and steal information from there.
- JavaScript can easily communicate over the net to the server where the current page came from. But its ability to receive data from other sites/domains is severely limited. Though possible, it requires explicit agreement (expressed in HTTP headers) from the remote side. Once again, that's a safety limitation.
>>>>>>> 52c1e61915bc8970a950a3f59bd845827e49b4bf
![](limitations.svg)

Expand Down
4 changes: 4 additions & 0 deletions 1-js/02-first-steps/04-variables/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,11 @@ let userName;
let test123;
```

<<<<<<< HEAD
Cuando el nombre contiene varias palabras, se suele usar el estilo [camelCase](https://es.wikipedia.org/wiki/Camel_case) (capitalización en camello), donde las palabras van pegadas una detrás de otra, con cada inicial en mayúscula: `miNombreMuyLargo`.
=======
When the name contains multiple words, [camelCase](https://en.wikipedia.org/wiki/CamelCase) is commonly used. That is: words go one after another, with each word except the first starting with a capital letter: `myVeryLongName`.
>>>>>>> 52c1e61915bc8970a950a3f59bd845827e49b4bf

Es interesante notar que el símbolo del dólar `'$'` y el guion bajo `'_'` también se utilizan en nombres. Son símbolos comunes, tal como las letras, sin ningún significado especial.

Expand Down
4 changes: 4 additions & 0 deletions 1-js/02-first-steps/08-operators/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,11 @@ alert( c ); // 4

Las asignaciones encadenadas evalúan de derecha a izquierda. Primero, se evalúa la expresión más a la derecha `2 + 2` y luego se asigna a las variables de la izquierda: `c`, `b` y `a`. Al final, todas las variables comparten un solo valor.

<<<<<<< HEAD
Una vez más, con el propósito de la legibilidad es mejor separa tal código en unas pocas líneas:
=======
Once again, for the purposes of readability it's better to split such code into a few lines:
>>>>>>> 52c1e61915bc8970a950a3f59bd845827e49b4bf

```js
c = 2 + 2;
Expand Down
16 changes: 16 additions & 0 deletions 1-js/03-code-quality/02-coding-style/1-style-errors/solution.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
Podrías notar lo siguiente:

```js no-beautify
<<<<<<< HEAD
function pow(x,n) // <- sin espacio entre argumentos
{ // <- llave en una línea separada
let result=1; // <- sin espacios antes o después de =
Expand All @@ -15,6 +16,21 @@ let x=prompt("x?",''), n=prompt("n?",'') // <-- técnicamente posible,
if (n<0) // <- sin espacios dentro (n < 0), y debe haber una línea extra por encima
{ // <- llave en una línea separada
// debajo - las líneas largas se pueden dividir en varias líneas para mejorar la legibilidad
=======
function pow(x,n) // <- no space between arguments
{ // <- curly brace on a separate line
let result=1; // <- no spaces before or after =
for(let i=0;i<n;i++) {result*=x;} // <- no spaces
// the contents of { ... } should be on a new line
return result;
}

let x=prompt("x?",''), n=prompt("n?",'') // <-- technically possible,
// but better make it 2 lines, also there's no spaces and missing ;
if (n<=0) // <- no spaces inside (n <= 0), and should be extra line above it
{ // <- curly brace on a separate line
// below - long lines can be split into multiple lines for improved readability
>>>>>>> 52c1e61915bc8970a950a3f59bd845827e49b4bf
alert(`Power ${n} is not supported, please enter an integer number greater than zero`);
}
else // <- podría escribirlo en una sola línea como "} else {"
Expand Down
8 changes: 8 additions & 0 deletions 1-js/04-object-basics/01-object/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,11 @@ Como aprendimos en el capítulo <info:types>, hay ocho tipos de datos en JavaScr

En contraste, los objetos son usados para almacenar colecciones de varios datos y entidades más complejas asociados con un nombre clave. En JavaScript, los objetos penetran casi todos los aspectos del lenguaje. Por lo tanto, debemos comprenderlos primero antes de profundizar en cualquier otro lugar.

<<<<<<< HEAD
Podemos crear un objeto usando las llaves `{…}` con una lista opcional de *propiedades*. Una propiedad es un par "key:value", donde `key` es un string (también llamado "nombre clave"), y `value` puede ser cualquier cosa. P.D. Para fines prácticos de la lección, nos referiremos a este par de conceptos como "clave:valor".
=======
An object can be created with curly braces `{…}` with an optional list of *properties*. A property is a "key: value" pair, where `key` is a string (also called a "property name"), and `value` can be anything.
>>>>>>> 52c1e61915bc8970a950a3f59bd845827e49b4bf

Podemos imaginar un objeto como un gabinete con archivos firmados. Cada pieza de datos es almacenada en su archivo por la clave. Es fácil encontrar un archivo por su nombre o agregar/eliminar un archivo.

Expand All @@ -20,7 +24,11 @@ let user = {}; // sintaxis de "objeto literal"

![](object-user-empty.svg)

<<<<<<< HEAD
Normalmente se utilizan las llaves `{...}`. Esa declaración se llama *objeto literal*.
=======
Usually, the curly braces `{...}` are used. That declaration is called an *object literal*.
>>>>>>> 52c1e61915bc8970a950a3f59bd845827e49b4bf

## Literales y propiedades

Expand Down
5 changes: 5 additions & 0 deletions 1-js/05-data-types/10-destructuring-assignment/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,13 @@ Esto funciona, porque internamente una desestructuración trabaja iterando sobre
````


<<<<<<< HEAD
````smart header="Asignar a cualquier cosa en el lado izquierdo"
Podemos usar cualquier "asignable" en el lado izquierdo.
=======
````smart header="Assign to anything on the left-side"
We can use any "assignables" on the left side.
>>>>>>> 52c1e61915bc8970a950a3f59bd845827e49b4bf

Por ejemplo, una propiedad de objeto:
```js run
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,11 @@ Y aquí está la imagen para el `setTimeout` anidado:

![](settimeout-interval.svg)

<<<<<<< HEAD
**El `setTimeout` anidado garantiza el retraso fijo (aquí 100ms).**
=======
**The nested `setTimeout` ensures a minimum delay (100ms here) between the end of one call and the beginning of the subsequent one.**
>>>>>>> 52c1e61915bc8970a950a3f59bd845827e49b4bf

Esto se debe a que se planea una nueva llamada al final de la anterior.

Expand Down