Skip to content

Commit 2c5f275

Browse files
authored
Merge pull request #391 from maksumi/types
Data types
2 parents bf393d0 + c864b3e commit 2c5f275

3 files changed

Lines changed: 57 additions & 60 deletions

File tree

1-js/02-first-steps/05-types/1-string-quotes/solution.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
Los "backticks" incrustan la expresión dentro de `${...}` en la cadena.
2+
Los backticks incrustan la expresión dentro de `${...}` en la cadena.
33

44
```js run
55
let name = "Ilya";
@@ -10,6 +10,6 @@ alert( `hola ${1}` ); // hola 1
1010
// la expresión es una cadena "nombre"
1111
alert( `hola ${"name"}` ); // hola name
1212

13-
// la expresión es una variable, incrustarla
13+
// la expresión es una variable, incrustada
1414
alert( `hola ${name}` ); // hola Ilya
1515
```

1-js/02-first-steps/05-types/1-string-quotes/task.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ importance: 5
44

55
# Comillas
66

7-
Cuál es la salida del script?
7+
¿Cuál es la salida del script?
88

99
```js
1010
let name = "Ilya";
1111

12-
alert( `hola ${1}` ); // ?
12+
alert( `Hola ${1}` ); // ?
1313

14-
alert( `hola ${"name"}` ); // ?
14+
alert( `Hola ${"name"}` ); // ?
1515

16-
alert( `hola ${name}` ); // ?
16+
alert( `Hola ${name}` ); // ?
1717
```

1-js/02-first-steps/05-types/article.md

Lines changed: 51 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
11
# Tipos de datos
22

3-
Un valor en JavaScript siempre es de cierto tipo. Por ejemplo, un string(cadena de caracteres) o un número.
3+
Un valor en JavaScript siempre pertenece a un tipo determinado. Por ejemplo, un string o un número.
44

5-
Hay ocho tipos de datos básicos en JavaScript. Aquí, los cubriremos en general y en los próximos capítulos hablaremos de cada uno de ellos en detalle.
5+
Hay ocho tipos básicos de datos en JavaScript. Aquí los cubriremos en general y en los próximos capítulos hablaremos de cada uno de ellos en detalle.
66

7-
Podemos poner cualquier tipo en una variable. Por ejemplo, una variable puede en un momento ser un string y luego almacenar un número:
7+
Podemos poner cualquier tipo dentro de una variable. Por ejemplo, una variable puede ser en un momento un string y luego almacenar un número:
88

99
```js
1010
// no hay error
1111
let message = "hola";
1212
message = 123456;
1313
```
1414

15-
Los lenguajes de programación que permiten estas cosas se denominan "dinámicamente tipeados", lo que significa que hay tipos de datos, pero las variables no están vinculadas a ninguno de ellos.
15+
Los lenguajes de programación que permiten estas cosas, como JavaScript, se denominan "dinámicamente tipados", lo que significa que allí hay tipos de datos, pero las variables no están vinculadas rígidamente a ninguno de ellos.
1616

17-
## Un number
1817

18+
## Número
1919
```js
2020
let n = 123;
2121
n = 12.345;
2222
```
2323

24-
El tipo *number* (número) representa tanto números enteros como de punto flotante.
24+
El tipo *number* representa tanto números enteros como de punto flotante.
2525

26-
Hay muchas operaciones para números, por ejemplo, multiplicación `*`, división `/`, suma `+`, resta `-`, y demás.
26+
Hay muchas operaciones para números. Por ejemplo, multiplicación `*`, división `/`, suma `+`, resta `-`, y demás.
2727

28-
Además de los números comunes, existen los llamados "valores numéricos especiales" que también pertenecen a este tipo de dato: `Infinity`, `-Infinity` and `NaN`.
28+
Además de los números comunes, existen los llamados "valores numéricos especiales" que también pertenecen a este tipo de datos: `Infinity`, `-Infinity` y `NaN`.
2929

3030
- `Infinity` representa el [Infinito](https://es.wikipedia.org/wiki/Infinito) matemático ∞. Es un valor especial que es mayor que cualquier número.
3131

@@ -35,7 +35,7 @@ Además de los números comunes, existen los llamados "valores numéricos especi
3535
alert( 1 / 0 ); // Infinito
3636
```
3737

38-
O simplemente hacer referencia a ello directamente:
38+
O simplemente hacer referencia a él directamente:
3939

4040
```js run
4141
alert( Infinity ); // Infinito
@@ -66,9 +66,9 @@ Veremos más sobre el trabajo con números en el capítulo <info:number>.
6666

6767
## BigInt
6868

69-
En JavaScript, el tipo "número" no puede representar valores enteros mayores que <code>(2<sup>53</sup>-1)</code> (eso es `9007199254740991`), o menor que <code>-(2<sup>53</sup>-1)</code> para negativos. Es una limitación técnica causada por su representación interna.
69+
En JavaScript, el tipo "number" no puede representar valores enteros mayores que <code>(2<sup>53</sup>-1)</code> (eso es `9007199254740991`), o menor que <code>-(2<sup>53</sup>-1)</code> para negativos. Es una limitación técnica causada por su representación interna.
7070

71-
Para la mayoría de los propósitos es suficiente pero a veces necesitamos números realmente grandes, por ejemplo para criptografía o marcas de tiempo de precisión de microsegundos.
71+
Para la mayoría de los propósitos es suficiente, pero a veces necesitamos números realmente grandes. Por ejemplo, para criptografía o marcas de tiempo de precisión de microsegundos.
7272

7373
`BigInt` se agregó recientemente al lenguaje para representar enteros de longitud arbitraria.
7474

@@ -79,48 +79,48 @@ Un valor `BigInt` se crea agregando `n` al final de un entero:
7979
const bigInt = 1234567890123456789012345678901234567890n;
8080
```
8181

82-
Como los números `BigInt` rara vez se necesitan, no los cubrimos aquí, sino que les dedicamos un capítulo separado <info: bigint>. Léalo cuando necesite números tan grandes.
82+
Como los números `BigInt` rara vez se necesitan, no los cubrimos aquí sino que les dedicamos un capítulo separado <info: bigint>. Léelo cuando necesites números tan grandes.
83+
8384

8485

8586
```smart header="Problemas de compatibilidad"
86-
En este momento, `BigInt` es compatible con Firefox/Chrome/Edge/Safari pero no con IE.
87+
En este momento, `BigInt` es compatible con Firefox / Chrome / Edge / Safari, pero no con IE.
8788
```
8889

89-
Puedes revissar la [tabla de compatibilidad BigInt de *MDN*](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt#Browser_compatibility) para conocer las versiones de navegadores soportadas.
90-
91-
## Un string
90+
Puedes revisar la [tabla de compatibilidad de BigInt en *MDN*](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt#Browser_compatibility) para saber qué versiones de navegador tienen soporte.
9291

93-
Un string (cadena de caracteres) en JavaScript debe estar encerrado entre comillas.
92+
## String
93+
Un string (cadena de caracteres) en JavaScript debe colocarse entre comillas.
9494

9595
```js
9696
let str = "Hola";
9797
let str2 = 'Las comillas simples también están bien';
98-
let phrase = `puede incrustar ${str}`;
98+
let phrase = `se puede incrustar otro ${str}`;
9999
```
100100

101101
En JavaScript, hay 3 tipos de comillas.
102102

103103
1. Comillas dobles: `"Hola"`.
104104
2. Comillas simples: `'Hola'`.
105-
3. Backticks (acento grave): <code>&#96;Hola&#96;</code>.
105+
3. Backticks (comillas invertidas): <code>&#96;Hola&#96;</code>.
106106

107-
Las comillas dobles y simples son comillas "simples". No hay diferencia entre ellas en JavaScript.
107+
Las comillas dobles y simples son comillas "sencillas" (es decir, funcionan igual). No hay diferencia entre ellas en JavaScript.
108108

109-
Los Backticks son comillas de "funcionalidad extendida". Nos permiten incrustar variables y expresiones en una cadena de caracteres encerrándolas en `${...}`, por ejemplo:
109+
Los backticks son comillas de "funcionalidad extendida". Nos permiten incrustar variables y expresiones en una cadena de caracteres encerrándolas en `${...}`, por ejemplo:
110110

111111
```js run
112-
let name = "Juan";
112+
let name = "John";
113113
114114
// incrustar una variable
115-
alert( `Hola, *!*${name}*/!*!` ); // Hola, Juan!
115+
alert( `Hola, *!*${name}*/!*!` ); // Hola, John!
116116

117117
// incrustar una expresión
118118
alert( `el resultado es *!*${1 + 2}*/!*` ); //el resultado es 3
119119
```
120120
121121
La expresión dentro de `${...}` se evalúa y el resultado pasa a formar parte de la cadena. Podemos poner cualquier cosa ahí dentro: una variable como `name`, una expresión aritmética como `1 + 2`, o algo más complejo.
122122
123-
Tenga en cuenta que esto sólo se puede hacer en los "backticks". ¡Otras comillas no tienen esta capacidad de incrustación!
123+
Toma en cuenta que esto sólo se puede hacer con los backticks. ¡Las otras comillas no tienen esta capacidad de incrustación!
124124
```js run
125125
alert( "el resultado es ${1 + 2}" ); // el resultado es ${1 + 2} (las comillas dobles no hacen nada)
126126
```
@@ -129,15 +129,14 @@ En el capítulo <info:string> trataremos más a fondo las cadenas.
129129
130130
```smart header="No existe el tipo *carácter*".
131131
En algunos lenguajes, hay un tipo especial "carácter" para un solo carácter. Por ejemplo, en el lenguaje C y en Java es `char`.
132-
133-
En JavaScript no existe tal tipo. Sólo hay un tipo: `string`. Una cadena puede estar formada por cero caracteres (estar vacía), un carácter o por varios de ellos.
132+
En JavaScript no existe tal tipo. Sólo hay un tipo: `string`. Un string puede estar formado por un solo carácter o por varios de ellos.
134133
```
135134
136-
## Un boolean (tipo lógico)
135+
## Booleano (tipo lógico)
137136
138-
El tipo boolean (booleano) tiene sólo dos valores: verdadero `true` y falso `false`.
137+
El tipo booleano tiene sólo dos valores: `true` y `false`.
139138
140-
Este tipo se utiliza comúnmente para almacenar valores de sí/no: `true` significa "sí, correcto", y `false` significa "no, incorrecto".
139+
Este tipo se utiliza comúnmente para almacenar valores de sí/no: `true` significa "sí, correcto, verdadero", y `false` significa "no, incorrecto, falso".
141140
142141
Por ejemplo:
143142
@@ -170,7 +169,7 @@ En JavaScript, `null` no es una "referencia a un objeto inexistente" o un "punte
170169
171170
Es sólo un valor especial que representa "nada", "vacío" o "valor desconocido".
172171
173-
El código anterior indica que la "edad" es desconocida o está vacía por alguna razón.
172+
El código anterior indica que el valor de `age` es desconocido o está vacío por alguna razón.
174173
175174
## El valor "undefined" (indefinido)
176175
@@ -181,33 +180,33 @@ El significado de `undefined` es "valor no asignado".
181180
Si una variable es declarada pero no asignada, entonces su valor es `undefined`:
182181
183182
```js run
184-
let x;
183+
let age;
185184

186-
alert(x); // muestra "undefined"
185+
alert(age); // muestra "undefined"
187186
```
188187
189188
Técnicamente, es posible asignar `undefined` a cualquier variable:
190189
191190
```js run
192-
let edad = 100;
191+
let age = 100;
193192

194-
// cambia el valor a undefined
195-
edad = undefined;
193+
// cambiando el valor a undefined
194+
age = undefined;
196195

197-
alert(x); // "undefined"
196+
alert(age); // "undefined"
198197
```
199198
200-
...Pero no recomendamos hacer eso. Normalmente, usamos `null` para asignar un valor "vacío" o "desconocido" a una variable, y usamos `undefined` para chequeos como ver si una variable ha sido asignada.
199+
...Pero no recomendamos hacer eso. Normalmente, usamos `null` para asignar un valor "vacío" o "desconocido" a una variable, mientras `undefined` es un valor inicial reservado para cosas que no han sido asignadas.
201200
202-
## Objects y symbols
201+
## Objetos y símbolos
203202
204203
El tipo `object` (objeto) es especial.
205204
206-
Todos los demás tipos se llaman "primitivos" porque sus valores pueden contener una sola cosa (ya sea una cadena, un número o lo que sea). Por el contrario, los objetos se utilizan para almacenar colecciones de datos y entidades más complejas.
205+
Todos los demás tipos se llaman "primitivos" porque sus valores pueden contener una sola cosa (ya sea una cadena, un número o lo que sea). Por el contrario, los objetos se utilizan para almacenar colecciones de datos y entidades más complejas.
207206
208-
Siendo tan importantes, los objetos merecen un tratamiento especial. Nos ocuparemos de ellos más adelante en el capítulo <info:object> después de aprender más sobre los primitivos.
207+
Siendo así de importantes, los objetos merecen un trato especial. Nos ocuparemos de ellos más adelante en el capítulo <info:object> después de aprender más sobre los primitivos.
209208
210-
El tipo `symbol` (símbolo) se utiliza para crear identificadores únicos para los objetos. Tenemos que mencionarlo aquí para una mayor completitud, pero es mejor estudiar este tipo después de los objetos.
209+
El tipo `symbol` (símbolo) se utiliza para crear identificadores únicos para los objetos. Tenemos que mencionarlo aquí para una mayor integridad, pero es mejor estudiar este tipo después de los objetos.
211210
212211
## El operador typeof [#type-typeof]
213212
@@ -223,17 +222,17 @@ En otras palabras, funciona con paréntesis o sin ellos. El resultado es el mism
223222
La llamada a `typeof x` devuelve una cadena con el nombre del tipo:
224223
225224
```js
226-
typeof undefined // "undefined" (indefinido)
225+
typeof undefined // "undefined"
227226

228-
typeof 0 // "number" (número)
227+
typeof 0 // "number"
229228

230229
typeof 10n // "bigint"
231230

232-
typeof true // "boolean" (booleano)
231+
typeof true // "boolean"
233232

234-
typeof "foo" // "string" (cadena)
233+
typeof "foo" // "string"
235234

236-
typeof Symbol("id") // "symbol" (símbolo)
235+
typeof Symbol("id") // "symbol"
237236

238237
*!*
239238
typeof Math // "object" (1)
@@ -250,15 +249,15 @@ typeof alert // "function" (3)
250249
251250
Las últimas tres líneas pueden necesitar una explicación adicional:
252251
253-
1. `Math` es un objeto incorporado (built-in) que proporciona operaciones matemáticas. Lo aprenderemos en el capítulo <info:number>. Aquí, sólo sirve como ejemplo de un objeto.
254-
2. El resultado de `typeof null` es `"object"`. Esto es un error oficialmente reconocido de `typeof` que viene de viejos tiempos y se mantiene por cuestiones de compatibilidad. Definitivamente `null` no es un objeto. Es un valor especial con su tipo propio.
255-
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 también 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"`. Técnicamente esto no es correcto, pero puede ser conveniente en la práctica.
252+
1. `Math` es un objeto incorporado que proporciona operaciones matemáticas. Lo aprenderemos en el capítulo <info:number>. Aquí sólo sirve como ejemplo de un objeto.
253+
2. El resultado de `typeof null` 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+
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.
256255

257256
## Resumen
258257

259258
Hay 8 tipos básicos en JavaScript.
260259

261-
- `number` para números de cualquier tipo: enteros o en punto flotante. Los enteros están limitados a ±2<sup>53</sup>.
260+
- `number` para números de cualquier tipo: enteros o de punto flotante, los enteros están limitados por <code>±(2<sup>53</sup>-1)</code>.
262261
- `bigint` para números enteros de longitud arbitraria.
263262
- `string` para cadenas. Una cadena puede tener cero o más caracteres, no hay un tipo especial para un único carácter.
264263
- `boolean` para verdadero y falso: `true`/`false`.
@@ -270,7 +269,5 @@ Hay 8 tipos básicos en JavaScript.
270269
El operador `typeof` nos permite ver qué tipo está almacenado en una variable.
271270

272271
- Dos formas: `typeof x` o `typeof(x)`.
273-
- Devuelve una cadena con el nombre del tipo, por ejemplo `"string"`.
274-
- Para `null` devuelve `"object"` -- esto es un error en el lenguaje, en realidad no es un objeto.
275-
276-
En los siguientes capítulos, nos concentraremos en los valores primitivos y una vez que nos familiaricemos con ellos, pasaremos a los objetos.
272+
- Devuelve una cadena con el nombre del tipo. Por ejemplo `"string"`.
273+
- Para `null` devuelve `"object"`: esto es un error en el lenguaje, en realidad no es un objeto.

0 commit comments

Comments
 (0)