You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/05-types/article.md
+8-7
Original file line number
Diff line number
Diff line change
@@ -212,13 +212,6 @@ El tipo `symbol` (símbolo) se utiliza para crear identificadores únicos para l
212
212
213
213
El operador `typeof` devuelve el tipo del argumento. Es útil cuando queremos procesar valores de diferentes tipos de forma diferente o simplemente queremos hacer una comprobación rápida.
214
214
215
-
Soporta dos formas de sintaxis:
216
-
217
-
1. Como operador: `typeof x`.
218
-
2. Como una función: `typeof(x)`.
219
-
220
-
En otras palabras, funciona con paréntesis o sin ellos. El resultado es el mismo.
221
-
222
215
La llamada a `typeof x` devuelve una cadena con el nombre del tipo:
223
216
224
217
```js
@@ -253,6 +246,14 @@ Las últimas tres líneas pueden necesitar una explicación adicional:
253
246
2. El resultado de `typeofnull` es `"object"`. Esto está oficialmente reconocido como un error de comportamiento de `typeof` que proviene de los primeros días de JavaScript y se mantiene por compatibilidad. Definitivamente `null` no es un objeto. Es un valor especial con un tipo propio separado.
254
247
3. El resultado de `typeof alert` es `"function"` porque `alert` es una función. Estudiaremos las funciones en los próximos capítulos donde veremos que no hay ningún tipo especial "function" en JavaScript. Las funciones pertenecen al tipo objeto. Pero `typeof` las trata de manera diferente, devolviendo `function`. Además proviene de los primeros días de JavaScript. Técnicamente dicho comportamiento es incorrecto pero puede ser conveniente en la práctica.
255
248
249
+
```smart header="Sintaxis de `typeof(x)`"
250
+
Se puede encontrar otra sintaxis en algún código: `typeof(x)`. Es lo mismo que `typeof x`.
251
+
252
+
Los paréntesis aquí no son parte del operador `typeof`. Son del tipo usado en agrupamiento matemático. Usualmente, tales paréntesis contienen expresiones matemáticas tales como `(2 + 2)`, pero aquí solo tienen un argumento `(x)`. Sintácticamente, permiten evitar el espacio entre el operador `typeof` y su argumento, y a algunas personas les gusta así.
253
+
254
+
Algunos prefieren `typeof(x)`, aunque la sintaxis `typeof x` es mucho más común.
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/16-function-expressions/article.md
+25-15
Original file line number
Diff line number
Diff line change
@@ -12,17 +12,29 @@ function sayHi() {
12
12
13
13
Existe otra sintaxis para crear una función que se llama una *Expresión de Función*.
14
14
15
-
Se ve así:
15
+
Esto permite crear una nueva función en el medio de cualquier expresión
16
+
17
+
Por ejemplo:
16
18
17
19
```js
18
20
letsayHi=function() {
19
21
alert( "Hola" );
20
22
};
21
23
```
22
24
23
-
Aquí, la función es creada y asignada a la variable de manera explícita, como cualquier otro valor. Sin importar cómo se define la función, es sólo un valor almacenado en la variable `sayHi`.
25
+
Aquí podemos ver una variable `sayHi` obteniendo un valor, la nueva función, creada como `function() { alert("Hello"); }`.
26
+
27
+
Como la creación de una función ocurre en el contexto de una expresión de asignación, (el lado derecho de `=`), esto es una *Expresión de función*.
28
+
29
+
Note que no hay un nombre después de la palabra clave `function`. Omitir el nombre está permitido en las expresiones de función.
30
+
31
+
Aquí la asignamos directamente a la variable, así que el significado de estos ejemplos de código es el mismo: "crear una función y ponerla en la variable `sayHi`".
32
+
33
+
En situaciones más avanzadas, que cubriremos más adelante, una función puede ser creada e inmediatamente llamada o agendada para uso posterior, sin almacenarla en ningún lugar, permaneciendo así anónima.
24
34
25
-
El sentido de estos ejemplos de código es el mismo: "crear una función y colocarla en la variable `sayHi`".
35
+
## La función es un valor
36
+
37
+
Reiteremos: no importa cómo es creada la función, una función es un valor. Ambos ejemplos arriba almacenan una función en `sayHi` variable.
26
38
27
39
Incluso podemos mostrar aquel valor usando `alert`:
28
40
@@ -61,14 +73,12 @@ Esto es lo que sucede arriba en detalle:
61
73
62
74
1. La Declaración de la Función `(1)` crea la función y la coloca dentro de la variable llamada `sayHi`.
63
75
2. Línea`(2)` copia la función en la variable `func`.
76
+
3. Ahora la función puede ser llamada de ambas formas, `sayHi()` y `func()`.
64
77
65
-
Aclaremos de nuevo: no hay paréntesis después de `sayHi`. Si lo hubiera, entonces `func = sayHi()` colocaría *el resultado de la llamada*`sayHi()` en `func`, no *la función*`sayHi` en sí.
66
-
3. Ahora la función puede ser llamada de ambas maneras, `sayHi()` y `func()`.
67
-
68
-
Tenga en cuenta que también podríamos haber utilizado una Expresión de Función para declarar `sayHi`, en la primera línea:
78
+
También podríamos haber usado una expresión de función para declarar `sayHi` en la primera línea:
69
79
70
80
```js
71
-
letsayHi=function() {
81
+
letsayHi=function() {// (1) crea
72
82
alert( "Hola" );
73
83
};
74
84
@@ -80,7 +90,7 @@ Todo funcionaría igual.
80
90
81
91
82
92
````smart header="¿Por qué hay un punto y coma al final?"
83
-
Tal vez te preguntes por qué la Expresión de Función tiene un punto y coma `;` al final, pero la Declaración de Función no:
93
+
Tal vez te preguntes por qué la Expresión de Función tiene un punto y coma `;` al final, pero la Declaración de Función no lo tiene:
84
94
85
95
```js
86
96
function sayHi() {
@@ -92,9 +102,9 @@ let sayHi = function() {
92
102
}*!*;*/!*
93
103
```
94
104
95
-
La respuesta es simple:
96
-
- No hay necesidad de un `;` al final de los bloques de código y estructuras de sintaxis que los utilizan tales como `if { ... }`, `for { }`, `function f { }` etc.
97
-
- Una Expresión de Función es utilizada dentro de la declaración: `let sayHi = ...;`, como un valor. No es un bloque de código. El punto y coma `;` es recomendado al final de declaraciones, sin importar cúal es el valor. Por lo tanto el punto y coma de aquí no se relaciona con la Expresión de Función en sí en ninguna forma, sólo termina la declaración.
105
+
La respuesta es simple: una expresión de función se crea aquí como `function(…) {…}` dentro de la sentencia de asignación `let sayHi = …;`. El punto y coma se recomienda para finalizar la sentencia, no es parte de la sintaxis de función.
106
+
107
+
El punto y coma estaría allí para una asignación más simple tal como `let sayHi = 5;`, y también está alli para la asignación de función.
98
108
````
99
109
100
110
## Funciones Callback
@@ -193,7 +203,7 @@ Primero, la sintaxis: cómo diferenciarlas en el código.
193
203
};
194
204
```
195
205
196
-
La diferencia más sutíl es *cuándo* la función es creada por el motor de JavaScript.
206
+
La diferencia más sutil es *cuándo* la función es creada por el motor de JavaScript.
197
207
198
208
**Una Expresión de Función es creada cuando la ejecución la alcance y es utilizable desde ahí en adelante.**
199
209
@@ -205,7 +215,7 @@ Las Declaraciones de Función son diferente.
205
215
206
216
Por ejemplo, una Declaración de Función global es visible en todo el script, sin importar dónde se esté.
207
217
208
-
Esto se debe a los algorítmosinternos. Cuando JavaScript se prepara para ejecutar el script, primero busca Declaraciones de Funciones globales en él y crea las funciones. Podemos pensar en esto como una "etapa de inicialización".
218
+
Esto se debe a los algoritmosinternos. Cuando JavaScript se prepara para ejecutar el script, primero busca Declaraciones de Funciones globales en él y crea las funciones. Podemos pensar en esto como una "etapa de inicialización".
209
219
210
220
Y después de que se procesen todas las Declaraciones de Funciones, el código se ejecuta. Entonces tiene acceso a éstas funciones.
211
221
@@ -239,7 +249,7 @@ Las Expresiones de Función son creadas cuando la ejecución las alcance. Esto p
239
249
240
250
Otra característica especial de las Declaraciones de Funciones es su alcance de bloque.
241
251
242
-
**En modo estrícto, cuando una Declaración de Función se encuentra dentro de un bloque de código, es visible en todas partes dentro de ese bloque. Pero no fuera de él.**
252
+
**En modo estricto, cuando una Declaración de Función se encuentra dentro de un bloque de código, es visible en todas partes dentro de ese bloque. Pero no fuera de él.**
243
253
244
254
Por ejemplo, imaginemos que necesitamos declarar una función `welcome()` dependiendo de la variable `age` que obtengamos durante el tiempo de ejecución. Y luego planeamos usarlo algún tiempo después.
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/17-arrow-functions-basics/article.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -5,10 +5,10 @@ Hay otra sintaxis muy simple y concisa para crear funciones, que a menudo es mej
5
5
Se llama "funciones de flecha", porque se ve así:
6
6
7
7
```js
8
-
letfunc= (arg1, arg2, ..., argN) => expression
8
+
letfunc= (arg1, arg2, ..., argN) => expression;
9
9
```
10
10
11
-
...Esto crea una función `func` que acepta parámetros `arg1..argN`, luego evalúa la `expression`de la derecha con su uso y devuelve su resultado.
11
+
Esto crea una función `func` que acepta los parámetros `arg1..argN`, luego evalúa la `expression`del lado derecho mediante su uso y devuelve su resultado.
0 commit comments