- Notifications
You must be signed in to change notification settings - Fork230
Type Conversions#57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Changes fromall commits
f976410
773a22a
9ff5db7
9ec05fa
8a6090c
844b8d7
a2e6ebe
6dcbeeb
File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading.Please reload this page.
Jump to
Uh oh!
There was an error while loading.Please reload this page.
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,160 +1,158 @@ | ||
#Conversiones de Tipos | ||
La mayoría de las veces, los operadores y funciones convierten automáticamente los valores que se les pasan al tipo correcto. Esto es llamado "conversión de tipo". | ||
Por ejemplo, `alert`convierte automáticamente cualquier valora stringpara mostrarlo. Las operaciones matemáticas convierten los valores a números. | ||
También hay casos donde necesitamos convertir de manera explícita un valor al tipo esperado. | ||
```smart header="Aún no hablamos de objetos" | ||
En este capítulo no cubriremos los objetos. Estudiaremos los valores primitivos primero. Luego, después de haber hablado sobre objetos, veremos cómo funciona la conversión de objetos en este capítulo <info:object-toprimitive>. | ||
``` | ||
## ToString | ||
La conversión a string ocurre cuando necesitamos la representación en forma de texto de un valor. | ||
Por ejemplo, `alert(value)`lo hace para mostrar el valor como texto. | ||
También podemos llamar a la función`String(value)`para convertir un valor a string: | ||
```js run | ||
let value = true; | ||
alert(typeof value); // boolean | ||
*!* | ||
value = String(value); //ahora valuees el string "true" | ||
alert(typeof value); // string | ||
*/!* | ||
``` | ||
La conversión a string es bastante obvia. El boolean`false`se convierte en`"false"`, `null`en `"null"`, etc. | ||
## ToNumber | ||
La conversión numérica ocurre automáticamente en funciones matemáticas y expresiones. | ||
Por ejemplo, cuando se dividen valores no numéricos usando `/`: | ||
```js run | ||
alert( "6" / "2" ); // 3,losstringsson convertidos a números | ||
``` | ||
Podemos usar la función `Number(value)` para convertir de forma explícita un valor a un número: | ||
```js run | ||
let str = "123"; | ||
alert(typeof str); // string | ||
let num = Number(str); //se convierte en 123 | ||
alert(typeof num); // number | ||
``` | ||
La conversión explícita es requerida usualmente cuando leemos un valor desde una fuente basada en texto, como lo son los campos de texto en los formularios, pero que esperamos que contengan un valor numérico. | ||
Si el string no es un número válido, el resultado de la conversión será `NaN`. Por ejemplo: | ||
```js run | ||
let age = Number("un texto arbitrario en vez de un número"); | ||
alert(age); // NaN,conversión fallida | ||
``` | ||
Reglas de conversión numérica: | ||
|Valor |Se convierte en... | | ||
|-------|-------------| | ||
|`undefined`|`NaN`| | ||
|`null`|`0`| | ||
|<code>true and false</code> | `1`y `0` | | ||
| `string` |Se eliminan los espacios al inicio y final del texto. Si elstringresultante es vacío, el resultado es `0`, en caso contario el número es "leído" delstring.Un errordevuelve `NaN`. | | ||
Examples: | ||
```js run | ||
alert( Number(" 123 ") ); // 123 | ||
alert( Number("123z") ); // NaN (erroral leer un número en "z") | ||
alert( Number(true) ); // 1 | ||
alert( Number(false) ); // 0 | ||
``` | ||
Ten en cuenta que`null`y `undefined`se comportan de distinta manera aquí: `null`se convierte en `0` mientras que `undefined`se convierte en `NaN`. | ||
````smart header="Adición '+'concatena strings" | ||
Casi todas las operaciones matemáticas convierten valores a números. Una excepciónnotablees la suma `+`.Si uno de los valores sumados es un string,el otro valor es convertido a string. | ||
Luego, los concatena (une): | ||
```js run | ||
alert( 1 + '2' ); // '12' (stringa la derecha) | ||
alert( '1' + 2 ); // '12' (stringa la izqueirda) | ||
``` | ||
Esto ocurre solo si al menos uno de los argumentos es un string, en caso contario los valores son convertidos a número. | ||
```` | ||
## ToBoolean | ||
La conversión a boolean es la más simple. | ||
Ocurre en operaciones lógicas (más adelante veremos test condicionales y otras cosas similares) pero también puede realizarse de forma explícita llamando a la función `Boolean(value)`. | ||
Las reglas de conversión: | ||
-Los valores que son intuitivamente "vacíos",como `0`,`""`, `null`, `undefined`,y `NaN`,se convierten en `false`. | ||
-Otros valores se convierten en `true`. | ||
Por ejemplo: | ||
```js run | ||
alert( Boolean(1) ); // true | ||
alert( Boolean(0) ); // false | ||
alert( Boolean("hola") ); // true | ||
alert( Boolean("") ); // false | ||
``` | ||
````warn header="Ten en cuenta: el stringcon un cero`\"0\"`es `true`" | ||
Algunos lenguajes (como PHP)tratan `"0"`como `false`.Pero en JavaScript,unstringno vacío es siempre `true`. | ||
```js run | ||
alert( Boolean("0") ); // true | ||
alert( Boolean(" ") ); //sólo espacios, también true (cualquierstringno vacío es true) | ||
``` | ||
```` | ||
##Resumen | ||
Las tres conversiones de tipo más usadas son a string,a número y a boolean. | ||
**`ToString`** --Ocurre cuando se muestra algo. Se puede realizar con `String(value)`.La conversión a stringes usualmente obvia para los valores primitivos. | ||
**`ToNumber`** --Ocurre en operaciones matemáticas. Se puede realizar con `Number(value)`. | ||
La conversión sigue las reglas: | ||
|Valor |Se convierte en... | | ||
|-------|-------------| | ||
|`undefined`|`NaN`| | ||
|`null`|`0`| | ||
|<code>true / false</code> | `1 / 0` | | ||
| `string` |El stringes leído "como es",los espacios en blanco tanto al inicio como al final son ignorados. Unstringvacío se convierte en`0`.Un errorentrega `NaN`. | | ||
**`ToBoolean`** --Ocurren en operaciones lógicas. Se puede realizar con `Boolean(value)`. | ||
Sigue las reglas: | ||
|Valor |Se convierte en... | | ||
|-------|-------------| | ||
|`0`, `null`, `undefined`, `NaN`, `""` |`false`| | ||
|cualquier otro valor| `true` | | ||
La mayoría de estas reglas son fáciles de entender y recordar. Las excepciones más notables donde la gente suele cometer errores son: | ||
- `undefined`es `NaN`como número, no `0`. | ||
- `"0"`y textos que solo contienen espacios como`" "`son `true` como boolean. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. Quedaría mejor cadenas en lugar de textos There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. En todo el resto del artículo se usa la palabra "texto". Creo que "cadena" o "cadena de caracteres" puede confundir al lector ya que no se ha explicado lo que es. | ||
Los objetos no son cubiertos aquí. Volveremos a ellos más tarde en el capítulo <info:object-toprimitive>que está dedicado exclusivamente a objetos después de que aprendamos más cosas básicas sobre JavaScript. |