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/14-switch/2-rewrite-if-switch/solution.md
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
The first two checks turn into two `case`. The third check is split into two cases:
1
+
Las primeras dos validaciones se vuelven dos`case`. La tercera validación se separa en dos casos:
2
2
3
3
```js run
4
4
let a =+prompt('a?', '');
@@ -21,6 +21,6 @@ switch (a) {
21
21
}
22
22
```
23
23
24
-
Please note: the`break`at the bottom is not required. But we put it to make the code future-proof.
24
+
Nota: El`break`al final no es requerido. Pero lo agregamos para preparar el código para el futuro.
25
25
26
-
In the future, there is a chance that we'd want to add one more `case`, for example`case 4`. And if we forget to add a break before it, at the end of `case 3`, there will be an error. So that's a kind of self-insurance.
26
+
En el futuro existe una probabilidad de que querramos agregar un `case` adicional, por ejemplo`case 4`. Y si olvidamos agregar un break antes, al final de `case 3`, habrá un error. Por tanto, es una forma de auto-asegurarse.
A `switch`statement can replace multiple`if` checks.
3
+
Una sentencia `switch`puede reemplazar múltiples condiciones`if`.
4
4
5
-
It gives a more descriptive way to compare a value with multiple variants.
5
+
Provee una mejor manera de comparar un valor con sus múltiples variantes.
6
6
7
-
## The syntax
7
+
## La sintaxis
8
8
9
-
The `switch`has one or more `case` blocks and an optional default.
9
+
`switch`tiene uno o mas bloques `case`y un opcional `default`.
10
10
11
-
It looks like this:
11
+
Se ve de esta forma:
12
12
13
13
```js no-beautify
14
14
switch(x) {
15
-
case'value1': // if (x === 'value1')
15
+
case'valor1': // if (x === 'valor1')
16
16
...
17
17
[break]
18
18
19
-
case'value2': // if (x === 'value2')
19
+
case'valor2': // if (x === 'valor2')
20
20
...
21
21
[break]
22
22
@@ -26,71 +26,71 @@ switch(x) {
26
26
}
27
27
```
28
28
29
-
-The value of`x`is checked for a strict equality to the value from the first `case` (that is, `value1`) then to the second (`value2`) and so on.
30
-
-If the equality is found, `switch`starts to execute the code starting from the corresponding`case`, until the nearest `break`(or until the end of`switch`).
31
-
-If no case is matched then the `default`code is executed (if it exists).
29
+
-El valor de`x`es comparado contra el valor del primer `case` (en este caso, `valor1`), luego contra el segundo (`valor2`) y así sucesivamente, todo esto bajo una igualdad estricta.
30
+
-Si la igualdad es encontrada, `switch`empieza a ejecutar el código iniciando por el primer`case` correspondiente, hasta el `break`más cercano (o hasta el final del`switch`).
31
+
-Si no se cumple ningún caso entonces el código `default`es ejecutado (si existe).
32
32
33
-
## An example
33
+
## Ejemplo
34
34
35
-
An example of`switch` (the executed code is highlighted):
35
+
Un ejemplo de`switch` (se resalta el código ejecutado):
36
36
37
37
```js run
38
38
let a =2+2;
39
39
40
40
switch (a) {
41
41
case3:
42
-
alert( 'Too small' );
42
+
alert( 'Muy pequeño' );
43
43
break;
44
44
*!*
45
45
case4:
46
-
alert( 'Exactly!' );
46
+
alert( '¡Exacto!' );
47
47
break;
48
48
*/!*
49
49
case5:
50
-
alert( 'Too large' );
50
+
alert( 'Muy grande' );
51
51
break;
52
52
default:
53
-
alert( "I don't know such values" );
53
+
alert( "Desconozco estos valores" );
54
54
}
55
55
```
56
56
57
-
Here the`switch`starts to compare `a`from the first `case`variant that is `3`. The match fails.
57
+
Aquí el`switch`inicia comparando `a`con la primera variante `case`que es `3`. La comparación falla.
58
58
59
-
Then`4`. That's a match, so the execution starts from `case 4`until the nearest `break`.
59
+
Luego`4`. La comparación es exitosa, por tanto la ejecución empieza desde `case 4`hasta el `break` más cercano.
60
60
61
-
**If there is no `break`then the execution continues with the next`case`without any checks.**
61
+
**Si no existe `break`entonces la ejecución continúa con el próximo`case`sin ninguna revisión.**
62
62
63
-
An example without`break`:
63
+
Un ejemplo sin`break`:
64
64
65
65
```js run
66
66
let a =2+2;
67
67
68
68
switch (a) {
69
69
case3:
70
-
alert( 'Too small' );
70
+
alert( 'Muy pequeño' );
71
71
*!*
72
72
case4:
73
-
alert( 'Exactly!' );
73
+
alert( '¡Exacto!' );
74
74
case5:
75
-
alert( 'Too big' );
75
+
alert( 'Muy grande' );
76
76
default:
77
-
alert( "I don't know such values" );
77
+
alert( "Desconozco estos valores" );
78
78
*/!*
79
79
}
80
80
```
81
81
82
-
In the example above we'll see sequential execution of three `alert`s:
82
+
En el ejemplo anterior veremos ejecuciones de tres `alert` secuenciales:
83
83
84
84
```js
85
-
alert( 'Exactly!' );
86
-
alert( 'Too big' );
87
-
alert( "I don't know such values" );
85
+
alert( '¡Exacto!' );
86
+
alert( 'Muy grande' );
87
+
alert( "Desconozco estos valores" );
88
88
```
89
89
90
-
````smart header="Any expression can be a `switch/case` argument"
91
-
Both`switch`and`case`allow arbitrary expressions.
90
+
````encabezado inteligente="Cualquier expresión puede ser un argumento `switch/case`"
alert("this runs, because +a is 1, exactly equals b+1");
102
+
alert("esto se ejecuta, porque +a es 1, exactamente igual b+1");
103
103
break;
104
104
*/!*
105
105
106
106
default:
107
-
alert("this doesn't run");
107
+
alert("esto no se ejecuta");
108
108
}
109
109
```
110
-
Here`+a`gives`1`, that's compared with `b + 1`in`case`, and the corresponding code is executed.
110
+
Aquí`+a`da`1`, esto es comparado con `b + 1`en`case`, y el código correspondiente es ejecutado.
111
111
````
112
112
113
-
## Grouping of "case"
113
+
## Agrupamiento de "case"
114
114
115
-
Several variants of `case` which share the same code can be grouped.
115
+
Varias variantes de `case` los cuales comparten el mismo código pueden ser agrupadas.
116
116
117
-
For example, if we want the same code to run for `case 3` and `case 5`:
117
+
Por ejemplo, si queremos que se ejecute el mismo código para `case 3` y `case 5`:
118
118
119
119
```js run no-beautify
120
120
let a = 2 + 2;
121
121
122
122
switch (a) {
123
123
case 4:
124
-
alert('Right!');
124
+
alert('¡Correcto!');
125
125
break;
126
126
127
127
*!*
128
-
case 3: // (*) grouped two cases
128
+
case 3: // (*) agrupando dos cases
129
129
case 5:
130
-
alert('Wrong!');
131
-
alert("Why don't you take a math class?");
130
+
alert('¡Incorrecto!');
131
+
alert("¿Por qué no tomas una clase de matemáticas?");
132
132
break;
133
133
*/!*
134
134
135
135
default:
136
-
alert('The result is strange. Really.');
136
+
alert('El resultado es extraño. Realmente.');
137
137
}
138
138
```
139
139
140
-
Now both `3` and `5` show the same message.
140
+
Ahora ambos `3` y `5` muestran el mismo mensaje.
141
141
142
-
The ability to "group" cases is a side-effect of how `switch/case` works without `break`. Here the execution of `case 3` starts from the line `(*)` and goes through `case 5`, because there's no `break`.
142
+
La habilidad para "agrupar" cases es un efecto secundario de como trabaja `switch/case` sin `break`. Aquí la ejecución de `case 3` inicia desde la línea `(*)` y continúa a través de `case 5`, porque no existe `break`.
143
143
144
-
## Type matters
144
+
## El tipo importa
145
145
146
-
Let's emphasize that the equality check is always strict. The values must be of the same type to match.
146
+
Vamos a enfatizar que la comparación de igualdad es siempre estricta. Los valores deben ser del mismo tipo para coincidir.
147
147
148
-
For example, let's consider the code:
148
+
Por ejemplo, consideremos el código:
149
149
150
150
```js run
151
-
let arg = prompt("Enter a value?");
151
+
let arg = prompt("Ingrese un valor");
152
152
switch (arg) {
153
153
case '0':
154
154
case '1':
155
-
alert( 'One or zero' );
155
+
alert( 'Uno o cero' );
156
156
break;
157
157
158
158
case '2':
159
-
alert( 'Two' );
159
+
alert( 'Dos' );
160
160
break;
161
161
162
162
case 3:
163
-
alert( 'Never executes!' );
163
+
alert( '¡Nunca ejecuta!' );
164
164
break;
165
165
default:
166
-
alert( 'An unknown value' );
166
+
alert( 'Un valor desconocido' );
167
167
}
168
168
```
169
169
170
-
1. For `0`, `1`, the first `alert` runs.
171
-
2. For `2` the second `alert` runs.
172
-
3. But for `3`, the result of the `prompt` is a string `"3"`, which is not strictly equal `===` to the number `3`. So we've got a dead code in `case 3`! The `default` variant will execute.
170
+
1. Para `0`, `1`, se ejecuta el primer `alert`.
171
+
2. Para `2` se ejecuta el segundo `alert`.
172
+
3. Pero para `3`, el resultado del `prompt` es un string `"3"`, el cual no es estrictamente igual `===` al número `3`. Por tanto ¡Tenemos un código muerto en `case 3`! La variante `default` se ejecutará.
Copy file name to clipboardExpand all lines: 1-js/05-data-types/12-json/2-serialize-event-circular/task.md
+7-7Lines changed: 7 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -2,13 +2,13 @@ importance: 5
2
2
3
3
---
4
4
5
-
# Exclude backreferences
5
+
# Excluir referencias circulares
6
6
7
-
In simple cases of circular references, we can exclude an offending property from serialization by its name.
7
+
En casos simples de referencias circulares, podemos excluir una propiedad infractora de la serialización por su nombre.
8
8
9
-
But sometimes we can't just use the name, as it may be used both in circular references and normal properties. So we can check the property by its value.
9
+
Pero a veces no podemos usar el nombre, ya que puede usarse tanto en referencias circulares como en propiedades normales. Entonces podemos verificar la propiedad por su valor.
10
10
11
-
Write `replacer`function to stringify everything, but remove properties that reference`meetup`:
11
+
Escriba la función `replacer`para convertir a string todo, pero elimine las propiedades que hacen referencia a`meetup`:
0 commit comments