Skip to content

rev 1-2-1 a 1-2-5 #342

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Aug 24, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
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 1-js/02-first-steps/01-hello-world/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ Esto no funcionará:

```html
<script *!*src*/!*="file.js">
alert(1); // el contenido se ignora, porque src se establece
alert(1); // el contenido se ignora porque se estableció src
</script>
```

Expand Down
3 changes: 1 addition & 2 deletions 1-js/02-first-steps/02-structure/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,6 @@ A medida que pasa el tiempo, los programas se vuelven cada vez más complejos. S

Los comentarios se pueden poner en cualquier lugar de un script. No afectan su ejecución porque el motor simplemente los ignora.


**Los comentarios de una línea comienzan con dos caracteres de barra diagonal `//`.**

El resto de la línea es un comentario. Puede ocupar una línea completa propia o seguir una sentencia.
Expand Down Expand Up @@ -140,7 +139,7 @@ alert('Mundo');
En la mayoría de los editores, se puede comentar una línea de código presionando `key:Ctrl+/` para un comentario de una sola línea y algo como `key:Ctrl+Shift+/` - para comentarios de varias líneas (selecciona una parte del código y pulsa la tecla de acceso rápido). Para Mac, intenta `key: Cmd` en lugar de `key: Ctrl`.
```

````warn header="¡Los comentarios anidados no son compatibles!"
````warn header="¡Los comentarios anidados no son soportados!"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
````warn header="¡Los comentarios anidados no son soportados!"
````warn header="¡Los comentarios anidados no son compatibles!"

me parece correcto el uso de compatible en el contexto de Computación..

support | (computing: be compatible) | admitir⇒ vtr
  |   | permitir⇒ vtr
  |   | ser compatible con loc verb
  | My operating system doesn't support this particular media player.
  | ⓘ Mi sistema operativo no admite esta configuración.
  | ⓘ Mi sistema operativo no permite esta configuración.
  | Mi sistema operativo no es compatible con este reproductor de medios.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Definitivamente no.
Siempre que puedo uso compatibilidad, porque suena menos tosco.

Pero soporte se aplica tanto a compatibilidad (uno soporta al otro)
como a que tiene o no una habilidad.

Compatibilidad se refiere a paridad,
por ejemplo Stephen Hawking para que pueda hablar lo hicieron compatible IBM,
uno de incompatibilidad correntinos y chaqueños o porteños y salteños, o porteños y todo lo demás.

Pero el artículo no es mío ni lo traduje, así que si no te convencí lo devuelvo.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No entiendo tus argumentos.
Obstinado en hacer las cosas a tu manera. Me pregunto para qué existen los Diccionarios??

https://www.wordreference.com/es/translation.asp?tranword=support

que tal así :

¡No se admiten comentarios anidados!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@EzequielCaste
¿Obstinado? Mirá quien habla.
Y tuve que aflojar en casi todo con tal de que el repo avanzara.

  1. Soporta... o aguanta. ¡Aguanten los comentarios anidados!
    El argumento es claro pero fallé en escribirlo, me comi un par de palabras.
    "Compatibilidad" no sirve en este caso. COMPA es soporte entre dos entidades maomeno pares, esto "No da soporte" a la anidación, no podés decir que no es compatible con ella.
    Puedo decir que esta jarra admite/permite/soporta cocción, no que es compatible con la cocción.

  2. Tu reference a wordreference, refuerza mi argumento: que no siempre se traduce igual.
    ahí dice support = soportar / respaldar, y "compatible" lo usa solo en "SO" <=> "MediaPlayer",
    para TODO lo demas usa "permite" o "soporta".
    En lo posible no traduzco,
    El diccionario que uso son DLE y DPD de la Real Academia Española, y Fundeu que no es perfecto pero aguanta (y me ayudaron con una particularmente dificil).
    para ingles pregunto la definicion en inglés a google, no recuerdo de donde la saca.

  3. Y... ya lo habia puesto asi, pense que por eso lo aprobaste, lo habias sugerido en otro lado. Admitir es mejor que soportar y MUCHO mejor que compatible.

  4. Ahora me gusta más "no permite comentario anidados" pero ni pieno cambiarlo.

Vi el coment de casualidad, no se si lo leeras...

No puede haber `/*...*/` dentro de otro `/*...*/`.

Dicho código terminará con un error:
Expand Down
45 changes: 28 additions & 17 deletions 1-js/02-first-steps/03-strict-mode/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,7 @@ Por ejemplo:
...
```

Aprenderemos funciones (una manera de agrupar comandos) en breve.

De cara al futuro, tengamos en cuenta que `"use strict"` se puede poner al inicio de la mayoría de los tipos de funciones en lugar del script entero. De esta manera, se activa el modo estricto únicamente en esa función. Pero, normalmente, la gente lo utiliza para el script entero.
Aprenderemos funciones (una manera de agrupar comandos) en breve, pero adelantemos que `"use strict"` se puede poner al inicio de una función. De esta manera, se activa el modo estricto únicamente en esa función. Pero normalmente se utiliza para el script entero.

````warn header="Asegúrate de que \"use strict\" está al inicio"
Por favor, asegúrate de que `"use strict"` está al principio de tus scripts. Si no, el modo estricto podría no estar activado.
Expand All @@ -40,21 +38,31 @@ alert("algo de código");
Únicamente pueden aparecer comentarios por encima de `"use strict"`.
````

````warn header="No hay manera de cancelar `use strict`"
```warn header="No hay manera de cancelar `use strict`"
No hay ninguna directiva del tipo `"no use strict"` que haga al motor volver al comportamiento anterior.

Una vez entramos en modo estricto, no hay vuelta atrás.
````
```

## Consola del navegador

A partir de ahora, cuando utilices la consola del navegador para probar características, ten en cuenta que no utiliza `use strict` por defecto.
Cuando utilices la [consola del navegador](info:devtools) para ejecutar código, ten en cuenta que no utiliza `use strict` por defecto.

En ocasiones, cuando `use strict` causa una diferencia, obtendrás resultados incorrectos.
En ocasiones, donde `use strict` cause diferencia, obtendrás resultados incorrectos.

Incluso si pulsamos `key:Shift+Enter` para ingresar múltiples líneas y ponemos `use strict` al principio, no funciona. Esto es por cómo la consola ejecuta el código internamente.
Entonces, ¿como activo `use strict` en la consola?

La única manera confiable de asegurar que `use strict` funcionará sería escribir el código en la consola de la siguiente forma:
Primero puedes intentar pulsando `key:Shift+Enter` para ingresar múltiples líneas y poner `use strict` al principio, como aquí:

```js
'use strict'; <Shift+Enter para una nueva línea>
// ...tu código
<Intro para ejecutar>
```

Esto funciona para la mayoría de los navegadores, específicamente Firefox y Chrome.

Si esto no funciona, como en los viejos navegadores, hay una fea pero confiable manera de asegurar `use strict`. Ponlo dentro de esta especie de envoltura:

```js
(function() {
Expand All @@ -64,15 +72,18 @@ La única manera confiable de asegurar que `use strict` funcionará sería escri
})()
```

## Utiliza siempre "use strict"
## ¿Deberíamos poner "use strict"?

La pregunta podría parecer obvia, pero no lo es.

Uno podría recomentar que se comiencen los script con `"use strict"`... ¿Pero sabes lo que es interesante?

El JavaScript moderno soporta "clases" y "módulos", estructuras de lenguaje avanzadas (que seguramente alcanzaremos), que habilitan `use strict` automáticamente. Entoncess no necesitamos agregar la directiva `"use strict"` si las usamos.

Aún tenemos que comentar las diferencias entre el modo estricto y el modo "por defecto".
**Entonces, por ahora `"use strict";` es un invitado bienvenido al tope de tus scripts. Luego, cuando tu código sea todo clases y módulos, puedes omitirlo.**

En los siguientes capítulos, según aprendamos características del lenguaje, veremos las diferencias entre los modos estricto y por defecto. Afortunadamente, no hay tantas y, de hecho, nos hacen la vida más fácil.
A partir de ahora tenemos que sasber acerca de `use strict` en general.

De momento, es suficiente saber lo general:
En los siguientes capítulos, como aprendamos características del lenguaje, veremos las diferencias entre el modo estricto y el antiguo. Afortunadamente no hay muchas y realmente hacen nuestra vida mejor.

1. La directiva `"use strict"` cambia el motor de ejecución al modo "moderno", modificando el comportamiento de algunas características incluídas en el lenguaje. Veremos los detalles más adelante.
2. El modo estricto se habilita poniendo `"use strict"` al principio de una función o del script. Varias características del lenguaje, como las "clases" y los "módulos", activan el modo estricto automáticamente.
3. El modo estricto funciona en todos los navegadores modernos.
4. Recomendamos empezar todos los scripts siempre con `"use strict"`. Todos los ejemplos de este tutorial asumen que el modo estricto está activado excepto cuando (muy raramente) se especifica lo contrario.
Todos los ejemplos en este tutorial asumen modo estricto salvo que (muy raramente) se especifique lo contrario.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Primero, la variable para el nombre de nuestro planeta.
## La variable para nuestro planeta.

Eso es simple:

Expand All @@ -8,7 +8,7 @@ let ourPlanetName = "Tierra";

Nota, podríamos usar un nombre más corto `planeta`, pero podría no ser obvio a qué planeta se refiere. Es una buena idea ser más detallado, siempre y cuando la variable noSeaMuyLarga.

Segundo, el nombre del usuario actual:
## El nombre del usuario actual

```js
let currentUserName = "Juan";
Expand Down
36 changes: 24 additions & 12 deletions 1-js/02-first-steps/04-variables/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ Una [variable](https://es.wikipedia.org/wiki/Variable_(programaci%C3%B3n))) es u
Para generar una variable en JavaScript, se usa la palabra clave `let`.

La siguiente declaración genera (en otras palabras: *declara* o *define*) una variable con el nombre "message":

```js
let message;
```
Expand Down Expand Up @@ -64,14 +63,14 @@ let age = 25;
let message = 'Hola';
```

Algunas personas también definen variables múltiples en es estilo multilínea (multiline):
Algunas personas también definen variables múltiples en estilo multilínea:
```js no-beautify
let user = 'John',
age = 25,
message = 'Hola';
```

...Incluso en este estilo "comma-first":
...Incluso en este estilo "coma primero":

```js no-beautify
let user = 'John'
Expand All @@ -81,9 +80,8 @@ let user = 'John'

Técnicamente, todas estas variantes hacen lo mismo. Así que, es cuestión de gusto personal y preferencia estética.


````smart header="`var` en vez de `let`"
En 'scripts' mas viejos, a veces se encuentra la palabra clave `let`:
En scripts más viejos, a veces se encuentra otra palabra clave: `var` en lugar de `let`:

```js
*!*var*/!* mensaje = 'Hola';
Expand All @@ -96,7 +94,7 @@ Existen sutiles diferencias entre `let` y `var`, pero no nos constan en este mom

## Una analogía de la vida real

Podemos comprender fácilmente el concepto de una "variable" si nos la imaginamos como una "caja" con una etiqueta de nombre único, pegada en ella.
Podemos comprender fácilmente el concepto de una "variable" si nos la imaginamos como una "caja" con una etiqueta de nombre único pegada en ella.

Por ejemplo, podemos imaginar la variable `message` como una caja etiquetada `"message"` con el valor `"Hola!"` adentro:

Expand Down Expand Up @@ -136,20 +134,34 @@ alert(hello); // Hola mundo!
alert(message); // Hola mundo!
```

````warn header="Declarar dos veces lanza un error"
Una variable debería ser declarada solamente una vez.

Una declaración repetida de la misma variable es un error:

```js run
let message = "This";

// 'let' repetidos lleva a un error
let message = "That"; // SyntaxError: 'message' ya fue declarado
```
Debermos declarar una variable una sola vez y desde entonces referirnos a ella sin `let`.
````

```smart header="Lenguajes funcionales"
Es interesante notar el hecho que lenguajes de programación [funcional](https://es.wikipedia.org/wiki/Programaci%C3%B3n_funcional), como [Scala](http://www.scala-lang.org/) o [Erlang](http://www.erlang.org) prohíben cambiar el valor de variables.

En tales lenguajes, una vez la variable ha sido almacenada "en la caja", permanece allí por siempre. Si necesitamos almacenar algo más, el lenguaje nos obliga a crear una nueva caja (generar una nueva variable). No podemos reusar la antigua.

Aunque puede parecer un poco extraño a primera vista, estos lenguajes tienen seria capacidad de desarrollar. Más aún, existen áreas como computación en paralelo en las cuales esta limitación otorga ciertos beneficios. Estudiar tales lenguajes (incluso sin la intención de usarlo en el futuro cercano) es recomendable para ampliar la mente.
Aunque puede parecer un poco extraño a primera vista, estos lenguajes son muy capaces de desarrollo serio. Más aún, existen áreas como computación en paralelo en las cuales esta limitación otorga ciertos beneficios. Estudiar tales lenguajes (incluso sin la intención de usarlo en el futuro cercano) es recomendable para ampliar la mente.
```

## Nombramiento de variables [#variable-naming]

Existen dos limitaciones de nombre de variables en JavaScript:

1. El nombre únicamente puede incluir letras, dígitos numerales, o los símbolos `$` y `_`.
2. El primer carácter no puede ser un dígito numeral.
1. El nombre únicamente puede incluir letras, dígitos, o los símbolos `$` y `_`.
2. El primer carácter no puede ser un dígito.

Ejemplos de nombres válidos:

Expand All @@ -174,7 +186,7 @@ alert($ + _); // 3
Ejemplos de nombres incorrectos:

```js no-beautify
let 1a; // no puede iniciar con un dígito numeral
let 1a; // no puede iniciar con un dígito

let my-name; // los guiones '-' no son permitidos en nombres
```
Expand Down Expand Up @@ -324,8 +336,8 @@ Los minificadores de JavaScript moderno, y los navegadores optimizan el código

Podemos declarar variables para almacenar datos al utilizar las palabra clave `var`, `let`, o `const`.

- `let` -- es una declaración de variable moderna. El código debe estar en 'strict mode' para utilizar `let` en Chrome (V8).
- `var` -- es una declaración de variable más vieja-escuela. Normalmente no lo utilizamos para nada, aunque cubriremos sus sutiles diferencias con `let` en el capítulo <info:var>, en caso de que sea necesario.
- `let` -- es una declaración de variable moderna.
- `var` -- es una declaración de variable más vieja-escuela. Normalmente no lo utilizamos en absoluto, aunque cubriremos sus sutiles diferencias con `let` en el capítulo <info:var>, en caso de que sea necesario.
- `const` -- es como `let`, pero el valor de la variable no puede ser alterado.

Las variables deben ser nombradas de tal manera que entendamos fácilmente lo que está en su interior.
Loading