Skip to content

Commit 1f96e20

Browse files
authored
Apply suggestions from code review
37 cambios que me atreví a hacer sin permiso tildes, gramática, y err de concepto mas lineas que no habian sido traducidas adrede
1 parent a3dfe10 commit 1f96e20

File tree

5 files changed

+41
-38
lines changed

5 files changed

+41
-38
lines changed

1-js/05-data-types/03-string/1-ucfirst/solution.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
No podemos "reemplazar" el primer caracter, debido a que los strings en JavaScript son inmutables.
1+
No podemos "reemplazar" el primer carácter, debido a que los strings en JavaScript son inmutables.
22

33
Pero podemos hacer un nuevo string basado en el existente, con el primer carácter en mayúsculas:
44

55
```js
66
let newStr = str[0].toUpperCase() + str.slice(1);
77
```
88

9-
Sin embargo, hay un pequeño problema. Si `str` está vacío, entonces `str[0]`no está definido, por lo que obtendremos un error.
9+
Sin embargo, hay un pequeño problema. Si `str` está vacío, entonces `str[0]` es `undefined`, y como `undefined` no tiene el método `toUpperCase()`, obtendremos un error.
1010

1111
Existen dos variantes:
1212

@@ -24,4 +24,3 @@ function ucFirst(str) {
2424

2525
alert( ucFirst("john") ); // John
2626
```
27-

1-js/05-data-types/03-string/1-ucfirst/task.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@ importance: 5
44

55
# Hacer mayúscula el primer caracter
66

7-
Escribe una función `ucFirst(str)` que retorne el string `str` con el primer caracter en mayúscula, por ejemplo:
7+
Escribe una función `ucFirst(str)` que devuelva el string `str` con el primer carácter en mayúscula, por ejemplo:
88

99
```js
1010
ucFirst("john") == "John";
1111
```
12-

1-js/05-data-types/03-string/3-truncate/solution.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
La longitud máxima debe ser 'maxlength', por lo que debemos cortarla un poco más corta, para dar espacio a los puntos suspensivos.
1+
La longitud máxima debe ser 'maxlength', por lo que debemos acortarla un poco para dar espacio a los puntos suspensivos.
22

33
Tener en cuenta que en realidad hay un único carácter unicode para puntos suspensivos. Eso no son tres puntos.
44

1-js/05-data-types/03-string/3-truncate/task.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ importance: 5
44

55
# Truncar el texto
66

7-
Crea una función `truncate(str, maxlength)` que verifique la longitud de `str` y, si excede `maxlength` - reemplaza el final de `str` con el carácter de puntos suspensivos `"..."`, para hacer su longitud igual a `maxlength`.
7+
Crea una función `truncate(str, maxlength)` que verifique la longitud de `str` y, si excede `maxlength` - reemplaza el final de `str` con el carácter de puntos suspensivos `""`, para hacer su longitud igual a `maxlength`.
88

99
El resultado de la función debe ser la cadena truncada (si es necesario).
1010

1-js/05-data-types/03-string/article.md

Lines changed: 36 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,15 @@ Los backticks además nos permiten especificar una "función de plantilla" antes
5252

5353
## Caracteres especiales
5454

55-
Es posible crear strings de múltiples líneas usando comillas simples, usando un llamado "caracter de nueva línea", escrito como `\n`, lo que denota un salto de línea:
55+
Es posible crear strings de múltiples líneas usando comillas simples, usando un llamado "carácter de nueva línea", escrito como `\n`, lo que denota un salto de línea:
5656

5757
```js run
5858
let guestList = 'Invitados:\n * Juan\n * Pedro\n * Maria';
5959

6060
alert(guestList); // una lista de invitados en múltiples líneas
6161
```
6262

63-
Por ejemplo, estas dos líneas describen lo mismo:
63+
Por ejemplo, estas dos líneas son iguales, solo que escritas en forma diferente:
6464

6565
```js run
6666
alert('Hola\nMundo'); // dos líneas usando el "símbolo de nueva línea"
@@ -70,7 +70,9 @@ alert(`Hola
7070
Mundo`);
7171
```
7272

73-
Existen otros tipos de caracteres especiales, menos comunes. Aquí está la lista:
73+
Existen otros tipos de caracteres especiales, menos comunes.
74+
75+
Esta es la lista completa:
7476

7577
| Caracter | Descripción |
7678
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -90,7 +92,7 @@ alert('\u{20331}'); // 佫, un raro jeroglífico chino (unicode largo)
9092
alert('\u{1F60D}'); // 😍, un emoticón sonriendo (otro unicode largo)
9193
```
9294

93-
Todos los caracteres especiales comienzan con una barra invertida `\`. También conocida como "caracter de escape".
95+
Todos los caracteres especiales comienzan con una barra invertida `\`. También conocida como "carácter de escape".
9496

9597
También la usamos si queremos insertar una comilla dentro de un string.
9698

@@ -110,7 +112,7 @@ alert(`Yo soy "Walrus"`); // Yo soy "Walrus"
110112

111113
Notar que el caracter de escape `\` sirve para la correcta lectura del string por JavaScript, luego desaparece. El string que quedó en la memoria no incluye `\`. Lo puedes ver claramente en el `alert` del ejemplo anterior.
112114

113-
¿Pero qué pasa si necesitamos incluir un caracter de escape `\` en el string?
115+
¿Pero qué pasa si necesitamos incluir un carácter de escape `\` en el string?
114116

115117
Es posible, pero debemos duplicarlo como sigue `\\`:
116118

@@ -125,18 +127,19 @@ La propiedad 'length' entrega el largo del string:
125127
```js run
126128
alert(`Mi\n`.length); // 3
127129
```
130+
128131
Notar que `\n` es un caracter "especial" único, por lo que el largo es `3`.
129132

130-
```warn header="`length` es una característica"
131-
Gente con experiencia en otros lenguajes a veces comete errores de tipeo al llamar `str.length()` en vez de `str.length`. Esto no funciona.
133+
```warn header="`length` es una propiedad"
134+
Gente con experiencia en otros lenguajes a veces comete el error de tipear `str.length()` en vez de `str.length`. Eso no funciona.
132135

133136
Por favor notar que `str.length` es una propiedad numérica, no una función. No hay necedidad de agregar un paréntesis después de ella.
134137

135138
````
136139
137140
## Accediendo caracteres
138141
139-
Para acceder a un caracter en la posición `pos`, se debe usar paréntesis cuadrados `[pos]` o llamar al método [str.charAt(pos)](mdn:js/String/charAt). El primer caracter comienza desde la posición cero:
142+
Para acceder a un carácter en la posición `pos`, se debe usar paréntesis cuadrados `[pos]` o llamar al método [str.charAt(pos)](mdn:js/String/charAt). El primer carácter comienza desde la posición cero:
140143
141144
```js run
142145
let str = `Hola`;
@@ -149,9 +152,9 @@ alert( str.charAt(0) ); // H
149152
alert( str[str.length - 1] ); // a
150153
````
151154

152-
Los paréntesis cuadrados son una forma moderna de acceder a los caracteres, mientras que `charAt` existe principalmente por razones históricas.
155+
Los corchetes son una forma moderna de acceder a los caracteres, mientras que `charAt` existe principalmente por razones históricas.
153156

154-
La única diferencia entre ellos es que si no se encuentra un caracter, `[]` retorna `undefined` (indefinido), y `charAt` retorna un string vacío.
157+
La única diferencia entre ellos es que si no se encuentra un caracter, `[]` devuelve `undefined`, y `charAt` devuelve un string vacío.
155158

156159
```js run
157160
let str = `Hola`;
@@ -170,9 +173,9 @@ for (let char of 'Hola') {
170173

171174
## Strings son inmutables
172175

173-
Strings no pueden ser modificados en JavaScript. Es imposible modificar un caracter.
176+
Strings no pueden ser modificados en JavaScript. Es imposible modificar un carácter.
174177

175-
Intentemoslo para demostrar que no funciona:
178+
Intentémoslo para demostrar que no funciona:
176179

177180
```js run
178181
let str = 'Hola';
@@ -218,7 +221,7 @@ Existen muchas formas de buscar por subcadenas de caracteres dentro de una caden
218221

219222
El primer método es [str.indexOf(substr, pos)](mdn:js/String/indexOf).
220223

221-
Este busca un `substr` en `str`, comenzando desde la posición entregada `pos`, y retorna la posición donde es encontrado el subcaracter o `-1` en caso de no encontrar nada.
224+
Este busca un `substr` en `str`, comenzando desde la posición entregada `pos`, y retorna la posición donde es encontrada la coincidencia o `-1` en caso de no encontrar nada.
222225

223226
Por ejemplo:
224227

@@ -275,8 +278,7 @@ while ((pos = str.indexOf(target, pos + 1)) != -1) {
275278
```smart header="`str.lastIndexOf(substr, position)`"
276279
Existe también un método similar [str.lastIndexOf(substr, position)](mdn:js/String/lastIndexOf) que busca desde el final del string hasta el comienzo.
277280

278-
Este imprimirá las ocurrencias en orden reverso.
279-
281+
Este imprimirá las ocurrencias en orden invertido.
280282
````
281283
282284
Existe un leve inconveniente con `indexOf` en la prueba `if`. No podemos utilizarlo en el `if` como sigue:
@@ -304,7 +306,8 @@ if (str.indexOf("Widget") != -1) {
304306
```
305307

306308
````smart header="El truco bitwise NOT"
307-
Uno de los trucos antiguos es el operador [bitwise NOT](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Operadores/Bitwise_Operators#Bitwise_NOT)) `~`. Este convierte el número en un entero de 32-bits (elimina la parte decimal si es que existe) y luego reversa todos los bits en su representación binaria.
309+
310+
Uno de los trucos antiguos es el operador [bitwise NOT](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Operadores/Bitwise_Operators#Bitwise_NOT)) `~`. Este convierte el número en un entero de 32-bits (elimina la parte decimal si es que existe) y luego invierte todos los bits en su representación binaria.
308311
309312
Para enteros de 32 bits, el llamado `~n` significa exactamente lo mismo que `-(n+1)` (debido al formato IEEE-754).
310313
@@ -319,11 +322,11 @@ alert( ~-1 ); // 0, lo mismo que -(-1+1)
319322
*/!*
320323
```
321324
322-
Como podemos ver, `~n` es cero sólo si `n == -1`.
325+
Como podemos ver, `~n` es cero sólo si `n == -1`. (para cualquier entero de 32-bit con signo).
323326
324327
Por lo que, la prueba `if ( ~str.indexOf("...") )` es veraz y el resultado de ``indexOf no es `-1`. En otras palabras, cuando es encontrado.
325328
326-
La gente lo usa para acrotar verificaciones `indexOf`:
329+
La gente lo usa para acortar verificaciones `indexOf`:
327330
328331
```js run
329332
let str = "Widget";
@@ -336,7 +339,10 @@ if (~str.indexOf("Widget")) {
336339
Usualmente no es recomendado utilizar características linguisticas en formas no obvias, pero en particular, este truco es utilizado ampliamente en código antiguo, por lo que debemos entenderlo.
337340
338341
Recuerda: `if (~str.indexOf(...))` es leído como "si es encontrado".
339-
````
342+
343+
Para ser preciso, como los números grandes son truncados a 32 bits por el operador `~`, existen otros números que dan `0`, el menor es `~4294967295=0`. Esto hace que tal chequeo sea correcto solo si el string no es así de largo.
344+
345+
Ahora podemos ver este truco solo en código viejo, porque JavaScript moderno provee el método `.includes` (ver a continuación).
340346
341347
### includes, startsWith, endsWith
342348
@@ -350,7 +356,7 @@ alert('Widget con id'.includes('Widget')); // true
350356
alert('Hola'.includes('Adios')); // false
351357
```
352358
353-
El segundo argumento opcional de `str.includes` es la posición desde dónde comienza a buscar:
359+
El segundo argumento opcional de `str.includes` es la posición desde donde comienza a buscar:
354360
355361
```js run
356362
alert('Midget'.includes('id')); // true
@@ -386,7 +392,7 @@ Existen 3 métodos en JavaScript para obtener un substring: `substring`, `substr
386392
alert( str.slice(2) ); // ringify, desde la 2nda posición hasta el final
387393
```
388394
389-
Valores negativos para `comienzo/final` también son posibles. Ellos indican que la posición es contada desde el final del string.
395+
También son posibles valores negativos para `comienzo/final`. Ellos indican que la posición es contada desde el final del string.
390396
391397
392398
```js run
@@ -414,7 +420,7 @@ Existen 3 métodos en JavaScript para obtener un substring: `substring`, `substr
414420
415421
```
416422
417-
Argumentos negativos son (al contrario de slice) compatibles, son tratados como `0`.
423+
Los argumentos negativos (al contrario de slice) no son soportados, son tratados como `0`.
418424
419425
`str.substr(comienzo [, largo])`
420426
: Retorna la parte del string desde `comienzo`, con el `largo` dado.
@@ -443,16 +449,16 @@ Recapitulemos los métodos para evitar confusiones:
443449
| `substr(comienzo, largo)` | desde `comienzo` toma `largo` caracteres | permite negativos `comienzo` |
444450
445451
```smart header="¿Cuál elegir?"
446-
Todos son capaces de hacer el trabajo. Formalmente, `substr` tiene una pequeña desventaja: no es descrito en la especificación central de JavaScript, pero en Annex B, la cual cubre características sólo de navegadores, que existen principalmente por razones históricas. Por lo que entornos sin navegador pueden fallar en compatibilidad. Pero en la práctica funciona en todos lados.
452+
Todos son capaces de hacer el trabajo. Formalmente, `substr` tiene una pequeña desventaja: no es descrito en la especificación central de JavaScript, sino en el anexo B, el cual cubre características sólo de navegadores, que existen principalmente por razones históricas. Por lo que entornos sin navegador pueden fallar en compatibilidad. Pero en la práctica funciona en todos lados.
447453
448-
Los autores generalmente usan `slice` casi todo el tiempo
454+
De las otras dos variantes, `slice` es algo más flexible, permite argumentos negativos y es más corta. Entones, es sufuciente con, de estos tres métodos, recordar únicamente `slice`.
449455
```
450456
451457
## Comparando strings
452458
453-
Como sabemos desde el capítulo <info:comparison>, strings son comparados caracter por caracter, en orden alfabético.
459+
Como sabemos desde el capítulo <info:comparison>, strings son comparados carácter por carácter en orden alfabético.
454460
455-
Aunque, existen algunas singularidades.
461+
Aunque existen algunas singularidades.
456462
457463
1. Una letra minúscula es siempre mayor que una mayúscula:
458464
@@ -470,7 +476,7 @@ Aunque, existen algunas singularidades.
470476
471477
Para entender qué pasa, revisemos la representaciín interna de strings en JavaScript.
472478
473-
Todos los strings son codificados usando [UTF-16](https://es.wikipedia.org/wiki/UTF-16). Esto significa: cada caracter tiene un código numérico correspondiente. Existen métodos especiales que permiten obtener el carácter para el código y viceversa.
479+
Todos los strings son codificados usando [UTF-16](https://es.wikipedia.org/wiki/UTF-16). Esto significa: cada carácter tiene un código numérico correspondiente. Existen métodos especiales que permiten obtener el carácter para el código y viceversa.
474480
475481
`str.codePointAt(pos)`
476482
: Retorna el código para el caracter en la posición `pos`:
@@ -515,7 +521,7 @@ Ahora se vuelve obvio por qué `a > Z`.
515521
Los caracteres son comparados por su código numérico. Código mayor significa que el caracter es mayor. El código para `a` (97) es mayor que el código para `Z` (90).
516522
517523
- Todas las letras minúsculas van después de las mayúsculas ya que sus códigos son mayores.
518-
- Algunas letras como `Ö` se mantienen apartadas del alfabeto principal. Aquó, el codigo es mayor que cualquiera desde `a` hasta `z`.
524+
- Algunas letras como `Ö` se mantienen apartadas del alfabeto principal. Aquí el codigo es mayor que cualquiera desde `a` hasta `z`.
519525
520526
### Comparaciones correctas
521527
@@ -544,7 +550,7 @@ Este método tiene dos argumentos adicionales especificados en [la documentació
544550
## Internals, Unicode
545551
546552
```warn header="Conocimiento avanzado"
547-
Esta sección ahonda en string internals. Este conocimiento será útil para ti si pleaneas lidiar con emoticones, raros caracteres matemáticos, jeroglíficos o otros símbolos extraños.
553+
Esta sección ahonda en string internals. Este conocimiento será útil para ti si pleaneas lidiar con emoticones, raros caracteres matemáticos, jeroglíficos u otros símbolos extraños.
548554
549555
Puedes saltar esta sección si no planeas mantenerlos.
550556
```
@@ -589,7 +595,7 @@ alert('𝒳'.charCodeAt(0).toString(16)); // d835, entre 0xd800 y 0xdbff
589595
alert('𝒳'.charCodeAt(1).toString(16)); // dcb3, entre 0xdc00 y 0xdfff
590596
```
591597
592-
Encontrarás más formas de trabajar con pares sustitutos más adelante en el capítulo <info:iterable>. Probablemente hay bibliotecas especiales para eso también, pero nada lo suficientemente famoso como para sugerir aquí.
598+
Encontrarás más formas de trabajar con pares sustitutos más adelante en el capítulo <info:iterable>. Probablemente hay bibliotecas especiales para eso también, pero nada lo suficientemente famoso como para sugerirlo aquí.
593599
594600
### Marcas diacríticas y normalización
595601
@@ -665,4 +671,3 @@ Existen varios otros métodos útiles en cadenas:
665671
666672
667673
Strings también tienen métodos para buscar / reemplazar con expresiones regulares. Pero ese tema merece un capítulo separado, así que volveremos a eso más adelante.
668-

0 commit comments

Comments
 (0)