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
+51-54Lines changed: 51 additions & 54 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,31 +1,31 @@
1
1
# Tipos de datos
2
2
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.
4
4
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.
6
6
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:
8
8
9
9
```js
10
10
// no hay error
11
11
let message ="hola";
12
12
message =123456;
13
13
```
14
14
15
-
Los lenguajes de programación que permiten estas cosasse 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.
16
16
17
-
## Un number
18
17
18
+
## Número
19
19
```js
20
20
let n =123;
21
21
n =12.345;
22
22
```
23
23
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.
25
25
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.
27
27
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`.
29
29
30
30
-`Infinity` representa el [Infinito](https://es.wikipedia.org/wiki/Infinito) matemático ∞. Es un valor especial que es mayor que cualquier número.
31
31
@@ -35,7 +35,7 @@ Además de los números comunes, existen los llamados "valores numéricos especi
35
35
alert( 1/0 ); // Infinito
36
36
```
37
37
38
-
O simplemente hacer referencia a ello directamente:
38
+
O simplemente hacer referencia a él directamente:
39
39
40
40
```js run
41
41
alert( Infinity ); // Infinito
@@ -66,9 +66,9 @@ Veremos más sobre el trabajo con números en el capítulo <info:number>.
66
66
67
67
## BigInt
68
68
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.
70
70
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.
72
72
73
73
`BigInt` se agregó recientemente al lenguaje para representar enteros de longitud arbitraria.
74
74
@@ -79,48 +79,48 @@ Un valor `BigInt` se crea agregando `n` al final de un entero:
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
+
83
84
84
85
85
86
```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.
87
88
```
88
89
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.
92
91
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.
94
94
95
95
```js
96
96
let str = "Hola";
97
97
let str2 = 'Las comillas simples también están bien';
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.
108
108
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:
110
110
111
111
```js run
112
-
let name = "Juan";
112
+
let name = "John";
113
113
114
114
// incrustar una variable
115
-
alert( `Hola, *!*${name}*/!*!` ); // Hola, Juan!
115
+
alert( `Hola, *!*${name}*/!*!` ); // Hola, John!
116
116
117
117
// incrustar una expresión
118
118
alert( `el resultado es *!*${1+2}*/!*` ); //el resultado es 3
119
119
```
120
120
121
121
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.
122
122
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!
124
124
```js run
125
125
alert( "el resultado es ${1 + 2}" ); // el resultado es ${1 + 2} (las comillas dobles no hacen nada)
126
126
```
@@ -129,15 +129,14 @@ En el capítulo <info:string> trataremos más a fondo las cadenas.
129
129
130
130
```smart header="No existe el tipo *carácter*".
131
131
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.
134
133
```
135
134
136
-
## Un boolean (tipo lógico)
135
+
## Booleano (tipo lógico)
137
136
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`.
139
138
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".
141
140
142
141
Por ejemplo:
143
142
@@ -170,7 +169,7 @@ En JavaScript, `null` no es una "referencia a un objeto inexistente" o un "punte
170
169
171
170
Es sólo un valor especial que representa "nada", "vacío" o "valor desconocido".
172
171
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.
174
173
175
174
## El valor "undefined" (indefinido)
176
175
@@ -181,33 +180,33 @@ El significado de `undefined` es "valor no asignado".
181
180
Si una variable es declarada pero no asignada, entonces su valor es `undefined`:
182
181
183
182
```js run
184
-
letx;
183
+
letage;
185
184
186
-
alert(x); // muestra "undefined"
185
+
alert(age); // muestra "undefined"
187
186
```
188
187
189
188
Técnicamente, es posible asignar `undefined` a cualquier variable:
190
189
191
190
```js run
192
-
letedad=100;
191
+
letage=100;
193
192
194
-
//cambia el valor a undefined
195
-
edad=undefined;
193
+
//cambiando el valor a undefined
194
+
age=undefined;
196
195
197
-
alert(x); // "undefined"
196
+
alert(age); // "undefined"
198
197
```
199
198
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.
201
200
202
-
## Objects y symbols
201
+
## Objetos y símbolos
203
202
204
203
El tipo `object` (objeto) es especial.
205
204
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.
207
206
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.
209
208
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.
211
210
212
211
## El operador typeof [#type-typeof]
213
212
@@ -223,17 +222,17 @@ En otras palabras, funciona con paréntesis o sin ellos. El resultado es el mism
223
222
La llamada a `typeof x` devuelve una cadena con el nombre del tipo:
Las últimas tres líneas pueden necesitar una explicación adicional:
252
251
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 `typeofnull` 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 `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
+
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.
256
255
257
256
## Resumen
258
257
259
258
Hay 8 tipos básicos en JavaScript.
260
259
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>.
262
261
- `bigint` para números enteros de longitud arbitraria.
263
262
- `string` para cadenas. Una cadena puede tener cero o más caracteres, no hay un tipo especial para un único carácter.
264
263
- `boolean` para verdadero y falso: `true`/`false`.
@@ -270,7 +269,5 @@ Hay 8 tipos básicos en JavaScript.
270
269
El operador `typeof` nos permite ver qué tipo está almacenado en una variable.
271
270
272
271
- 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