0% encontró este documento útil (0 votos)
6K vistas15 páginas

Valores, Tipos y Operadores - JavaScript Elocuente

El documento habla sobre los valores, tipos y operadores en JavaScript. Explica que todos los datos en una computadora están compuestos de bits y que los valores representan fragmentos distintos de información con un tipo específico como números, texto o funciones. Luego describe los números en JavaScript, incluidos enteros, fraccionarios y la notación científica, así como las operaciones aritméticas como suma, resta, multiplicación y división. También menciona valores numéricos especiales como Infinity.

Cargado por

bruno coss
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
6K vistas15 páginas

Valores, Tipos y Operadores - JavaScript Elocuente

El documento habla sobre los valores, tipos y operadores en JavaScript. Explica que todos los datos en una computadora están compuestos de bits y que los valores representan fragmentos distintos de información con un tipo específico como números, texto o funciones. Luego describe los números en JavaScript, incluidos enteros, fraccionarios y la notación científica, así como las operaciones aritméticas como suma, resta, multiplicación y división. También menciona valores numéricos especiales como Infinity.

Cargado por

bruno coss
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 15

7/2/24, 14:53 Valores, tipos y operadores :: JavaScript elocuente

Capítulo 1 ◀◆▶
Valores, tipos y operadores
“ Debajo de la superficie de la máquina, el programa se mueve. Sin esfuerzo, se expande
y se contrae. En gran armonía, los electrones se dispersan y reagrupan. Las formas en
el monitor no son más que ondas en el agua. La esencia permanece invisible debajo.”
— Maestro Yuan-Ma, El libro de la programación

Dentro del mundo de la computadora, sólo hay datos. Puede leer datos,
modificar datos, crear datos nuevos, pero lo que no son datos no se puede
mencionar. Todos estos datos se almacenan como largas secuencias de bits y,
por tanto, son fundamentalmente iguales.

Los bits son cualquier tipo de cosas con dos valores, generalmente descritas
como ceros y unos. Dentro de la computadora, toman formas como una carga
eléctrica alta o baja, una señal fuerte o débil, o una mancha brillante u opaca en
la superficie de un CD. Cualquier fragmento de información discreta puede
reducirse a una secuencia de ceros y unos y, por tanto, representarse en bits.

https://eloquentjavascript.net/01_values.html 1/15
7/2/24, 14:53 Valores, tipos y operadores :: JavaScript elocuente

Por ejemplo, podemos expresar el número 13 en bits. Funciona de la misma


manera que un número decimal, pero en lugar de 10 dígitos diferentes, solo
tienes 2 y el peso de cada uno aumenta en un factor de 2 de derecha a
izquierda. Aquí están los bits que componen el número 13, con los pesos de los
dígitos que se muestran debajo de ellos:

0 0 0 0 1 1 0 1
128 64 32 16 8 4 2 1

Entonces ese es el número binario 00001101. Sus dígitos distintos de cero


representan 8, 4 y 1, y suman 13.

Valores

Imagine un mar de bits, un océano de ellos. Una computadora moderna típica


tiene más de 30 mil millones de bits en su almacenamiento de datos volátiles
(memoria de trabajo). El almacenamiento no volátil (el disco duro o
equivalente) tiende a tener algunos órdenes de magnitud más.

Para poder trabajar con tales cantidades de bits sin perdernos, debemos
separarlos en fragmentos que representen fragmentos de información. En un
entorno JavaScript, esos fragmentos se denominan valores . Aunque todos los
valores están hechos de bits, desempeñan funciones diferentes. Cada valor
tiene un tipo que determina su función. Algunos valores son números, algunos
valores son fragmentos de texto, algunos valores son funciones, etc.

Para crear un valor, simplemente debe invocar su nombre. Esto es conveniente.


No es necesario reunir material de construcción para sus valores ni pagar por
ellos. Simplemente pide uno y, ¡ zas !, lo tienes. Por supuesto, en realidad no se
crean de la nada. Cada valor debe almacenarse en algún lugar y, si desea
utilizar una cantidad gigantesca de ellos al mismo tiempo, es posible que se
quede sin memoria. Afortunadamente, esto sólo es un problema si los necesita
todos simultáneamente. Tan pronto como dejes de utilizar un valor, se
disipará, dejando atrás sus fragmentos para ser reciclados como material de
construcción para la próxima generación de valores.

https://eloquentjavascript.net/01_values.html 2/15
7/2/24, 14:53 Valores, tipos y operadores :: JavaScript elocuente

Este capítulo presenta los elementos atómicos de los programas JavaScript, es


decir, los tipos de valores simples y los operadores que pueden actuar sobre
dichos valores.

Números

Los valores del tipo numérico son, como era de esperar, valores numéricos. En
un programa JavaScript, se escriben de la siguiente manera:

13

Úselo en un programa y hará que el patrón de bits del número 13 entre en


existencia dentro de la memoria de la computadora.

JavaScript utiliza un número fijo de bits, 64 de ellos, para almacenar un único


valor numérico. Hay un número limitado de patrones que puedes crear con 64
bits, lo que significa que la cantidad de números diferentes que se pueden
N
representar es limitada. Con N dígitos decimales, puedes representar 10
números. De manera similar, dados 64 dígitos binarios, puedes representar 2
64
números diferentes, lo que equivale aproximadamente a 18 quintillones (un
18 con 18 ceros después). Eso es mucho.

La memoria de la computadora solía ser mucho más pequeña y la gente tendía


a usar grupos de 8 o 16 bits para representar sus números. Era fácil desbordar
accidentalmente números tan pequeños y terminar con un número que no
encajaba en el número de bits dado. Hoy en día, incluso los ordenadores que
caben en el bolsillo tienen mucha memoria, por lo que puedes utilizar
fragmentos de 64 bits y sólo debes preocuparte por el desbordamiento cuando
se trata de números verdaderamente astronómicos.

Sin embargo, no todos los números enteros menores de 18 quintillones caben


en un número de JavaScript. Esos bits también almacenan números negativos,
por lo que un bit indica el signo del número. Un problema mayor es que
también deben representarse números no enteros. Para ello, se utilizan algunos
de los bits para almacenar la posición del punto decimal. El número entero

https://eloquentjavascript.net/01_values.html 3/15
7/2/24, 14:53 Valores, tipos y operadores :: JavaScript elocuente

máximo real que se puede almacenar está más bien en el rango de 9


cuatrillones (15 ceros), lo cual sigue siendo agradablemente enorme.

Los números fraccionarios se escriben usando un punto.

9.81

Para números muy grandes o muy pequeños, también puedes usar la notación
científica agregando una e (para exponente ), seguida del exponente del
número.

2.998e8

8
Esto es 2,998 × 10 = 299.800.000.

Se garantiza que los cálculos con números enteros (también llamados números
enteros ) menores que los 9 cuatrillones antes mencionados serán siempre
precisos. Desafortunadamente, los cálculos con números fraccionarios
generalmente no lo son. Así como π (pi) no puede expresarse con precisión
mediante un número finito de dígitos decimales, muchos números pierden algo
de precisión cuando solo hay 64 bits disponibles para almacenarlos. Es una
pena, pero sólo causa problemas prácticos en situaciones específicas. Lo
importante es ser consciente de ello y tratar los números digitales fraccionarios
como aproximaciones, no como valores precisos.

Aritmé t ic a

Lo principal que tiene que ver con los números es la aritmética. Las
operaciones aritméticas como la suma o la multiplicación toman dos valores
numéricos y producen un nuevo número a partir de ellos. Así es como se ven en
JavaScript:

100 + 4 * 11

Los símbolos + y * se llaman operadores . El primero representa la suma y el


segundo la multiplicación. Poner un operador entre dos valores lo aplicará a

https://eloquentjavascript.net/01_values.html 4/15
7/2/24, 14:53 Valores, tipos y operadores :: JavaScript elocuente

esos valores y producirá un nuevo valor.

Pero, ¿el ejemplo significa “suma 4 y 100 y multiplica el resultado por 11”, o la
multiplicación se realiza antes de la suma? Como habrás adivinado, la
multiplicación ocurre primero. Pero como en matemáticas, puedes cambiar
esto poniendo la suma entre paréntesis.

( 100 + 4 ) * 11

Para la resta existe el - operador y la división se puede realizar con el


/ operador.

Cuando los operadores aparecen juntos sin paréntesis, el orden en que se


aplican está determinado por la precedencia de los operadores. El ejemplo
muestra que la multiplicación viene antes que la suma. El / operador tiene la
misma prioridad que * . Lo mismo para + y - . Cuando aparecen varios
operadores con la misma precedencia uno al lado del otro, como en 1 - 2 +
1 , se aplican de izquierda a derecha: (1 - 2) + 1 .

Estas reglas de precedencia no son algo de lo que deba preocuparse. En caso de


duda, simplemente agregue paréntesis.

Hay un operador aritmético más, que quizás no reconozca de inmediato. El


% símbolo se utiliza para representar la operación restante . X % Y es el resto de
dividir X por Y . Por ejemplo, 314 % 100 produce 14 y 144 % 12 da 0 . La
precedencia del operador restante es la misma que la de la multiplicación y la
división. También verás a menudo que se hace referencia a este operador como
módulo .

numero s espe ciales

Hay tres valores especiales en JavaScript que se consideran números pero no


se comportan como números normales.

Los dos primeros son Infinity y -Infinity , que representan los infinitos
positivos y negativos. Infinity - 1 está quieto Infinity , y así
sucesivamente. Sin embargo, no confíes demasiado en la computación basada
https://eloquentjavascript.net/01_values.html 5/15
7/2/24, 14:53 Valores, tipos y operadores :: JavaScript elocuente

en el infinito. No es matemáticamente sólido y rápidamente conducirá al


siguiente número especial: NaN .

NaN significa "no es un número", aunque es un valor del tipo numérico.


Obtendrá este resultado cuando, por ejemplo, intente calcular 0 / 0 (cero
dividido por cero), Infinity - Infinity o cualquier otra operación numérica
que no produzca un resultado significativo.

Instrumentos de cuerda

El siguiente tipo de datos básico es la cadena . Las cadenas se utilizan para


representar texto. Se escriben encerrando su contenido entre comillas.

`Abajo en el mar`
"Acuéstate en el océano"
'Flota en el océano'

Puede utilizar comillas simples, comillas dobles o comillas invertidas para


marcar cadenas, siempre que las comillas al principio y al final de la cadena
coincidan.

Casi cualquier cosa se puede poner entre comillas y JavaScript creará un valor
de cadena a partir de ello. Pero algunos personajes son más difíciles. Puedes
imaginar lo difícil que puede ser poner comillas entre comillas. Las nuevas
líneas (los caracteres que aparecen al presionar Intro ) se pueden incluir sin
escapes solo cuando la cadena se cita con comillas invertidas ( ` ).

Para que sea posible incluir dichos caracteres en una cadena, se utiliza la
siguiente notación: siempre que \ se encuentra una barra invertida ( ) dentro
del texto entre comillas, indica que el carácter que sigue tiene un significado
especial. A esto se le llama escapar del personaje. Una comilla precedida por
una barra invertida no finalizará la cadena, sino que será parte de ella. Cuando
un n carácter aparece después de una barra invertida, se interpreta como una
nueva línea. De manera similar, t después de una barra invertida significa un
carácter de tabulación. Tome la siguiente cadena:

https://eloquentjavascript.net/01_values.html 6/15
7/2/24, 14:53 Valores, tipos y operadores :: JavaScript elocuente

"Esta es la primera línea\nY esta es la segunda"

El texto real contenido es este:

Esta es la primera linea


Y este es el segundo

Por supuesto, hay situaciones en las que desea que una barra invertida en una
cadena sea solo una barra invertida, no un código especial. Si dos barras
invertidas se suceden, se contraerán juntas y solo quedará una en el valor de
cadena resultante. Así es como la cadena " Un carácter de nueva línea se
escribe como " \n " ". ” se puede expresar:

"Un carácter de nueva línea se escribe como \"\\n\"."

Las cadenas también deben modelarse como una serie de bits para poder
existir dentro de la computadora. La forma en que JavaScript hace esto se basa
en el estándar Unicode . Este estándar asigna un número a prácticamente
todos los caracteres que pueda necesitar, incluidos caracteres del griego, árabe,
japonés, armenio, etc. Si tenemos un número para cada carácter, una cadena
puede describirse mediante una secuencia de números.

Y eso es lo que hace JavaScript. Pero hay una complicación: la representación


de JavaScript utiliza 16 bits por elemento de cadena, que puede describir hasta
caracteres
216 diferentes. Pero Unicode define más caracteres que eso:
aproximadamente el doble, en este momento. Entonces, algunos caracteres,
como muchos emoji, ocupan dos "posiciones de caracteres" en cadenas de
JavaScript. Volveremos a esto en el Capítulo 5 .

Las cadenas no se pueden dividir, multiplicar ni restar, pero se puede utilizar el


+ operador en ellas. No suma, sino que concatena : une dos hilos. La siguiente
línea producirá la cadena : "concatenate"

"con" + "gato" + "e" + "nate"

https://eloquentjavascript.net/01_values.html 7/15
7/2/24, 14:53 Valores, tipos y operadores :: JavaScript elocuente

Los valores de cadena tienen una serie de funciones asociadas ( métodos ) que
se pueden utilizar para realizar otras operaciones sobre ellos. Diré más sobre
esto en el Capítulo 4 .

Las cadenas escritas con comillas simples o dobles se comportan de forma muy
parecida: la única diferencia es qué tipo de comillas debes escapar dentro de
ellas. Las cadenas entre comillas invertidas, generalmente llamadas literales de
plantilla , pueden hacer algunos trucos más. Además de poder abarcar líneas,
también pueden incorporar otros valores.

`la mitad de 100 es $ { 100/2 } `

Cuando escribe algo dentro ${} de un literal de plantilla, su resultado se


calculará, se convertirá en una cadena y se incluirá en esa posición. El ejemplo
produce " la mitad de 100 es 50 ".

Oper adores unarios

No todos los operadores son símbolos. Algunas están escritas como palabras.
Un ejemplo es el typeof operador, que produce un valor de cadena que
nombra el tipo de valor que le asigna.

consola . log ( typeof 4.5 ) editar y ejecutar código haciendo clic en él


// →
consola numérica . log ( tipo de "x" )
// → cadena

Lo usaremos console.log en código de ejemplo para indicar que queremos


ver el resultado de evaluar algo. Más sobre eso en el próximo capítulo .

Todos los demás operadores mostrados operaron con dos valores, pero
typeof solo toman uno. Los operadores que utilizan dos valores se denominan
operadores binarios , mientras que los que toman uno se denominan
operadores unarios . El operador menos se puede utilizar como operador
binario y como operador unario.

https://eloquentjavascript.net/01_values.html 8/15
7/2/24, 14:53 Valores, tipos y operadores :: JavaScript elocuente

consola . iniciar sesión ( - ( 10 - 2 ))


// → -8

valores b ooleanos

A menudo resulta útil tener un valor que distinga sólo entre dos posibilidades,
como "sí" y "no" o "encendido" y "apagado". Para ello, JavaScript tiene un tipo
booleano , que tiene sólo dos valores, verdadero y falso, que se escriben como
esas palabras.

Compar ación

Aquí hay una forma de producir valores booleanos:

consola . log ( 3 > 2 )


// → verdadera
consola . iniciar sesión ( 3 < 2 )
// → falso

Los signos > y < son los símbolos tradicionales de "es mayor que" y "es menor
que", respectivamente. Son operadores binarios. Su aplicación da como
resultado un valor booleano que indica si son verdaderos en este caso.

Las cadenas se pueden comparar de la misma manera.

consola . log ( "Aardvark" < "Zoroastro" )


// → verdadero

La forma en que se ordenan las cadenas es más o menos alfabética, pero en


realidad no es lo que esperarías ver en un diccionario: las letras mayúsculas
siempre son "menos" que las minúsculas, por lo que "Z" < "a" también se
incluyen caracteres no alfabéticos (!, -, etc.). en el pedido. Al comparar
cadenas, JavaScript revisa los caracteres de izquierda a derecha, comparando
los códigos Unicode uno por uno.

Otros operadores similares son >= (mayor o igual que), <= (menor o igual que),
== (igual que) y != (distinto de).

https://eloquentjavascript.net/01_values.html 9/15
7/2/24, 14:53 Valores, tipos y operadores :: JavaScript elocuente

consola . log ( "Itchy" != "Scratchy" )


// → verdadera
consola . log ( "Apple" == "Naranja" )
// → falso

Sólo hay un valor en JavaScript que no es igual a sí mismo y es NaN (“no es un


número”).

consola . iniciar sesión ( NaN == NaN )


// → falso

NaN se supone que denota el resultado de un cálculo sin sentido y, como tal, no
es igual al resultado de ningún otro cálculo sin sentido.

Oper ad ores l o gic o s

También hay algunas operaciones que se pueden aplicar a los propios valores
booleanos. JavaScript admite tres operadores lógicos: y , o , y no . Estos
pueden usarse para “razonar” sobre los booleanos.

El && operador representa lógico y . Es un operador binario y su resultado es


verdadero sólo si ambos valores dados son verdaderos.

consola . log ( true & & false )


// → false
consola . iniciar sesión ( verdadero y verdadero )
// → verdadero

El || operador denota lógico o . Produce verdadero si cualquiera de los valores


que se le dan es verdadero.

consola . log ( falso | | verdadero )


// → verdadero
consola . iniciar sesión ( falso | | falso )
// → falso

No se escribe como un signo de exclamación ( ! ). Es un operador unario que


invierte el valor que se le da: !true produce false y !false da true .
https://eloquentjavascript.net/01_values.html 10/15
7/2/24, 14:53 Valores, tipos y operadores :: JavaScript elocuente

Al mezclar estos operadores booleanos con operadores aritméticos y de otro


tipo, no siempre resulta obvio cuándo se necesitan paréntesis. En la práctica,
generalmente puedes arreglártelas sabiendo que de los operadores que hemos
visto hasta ahora, || tiene la precedencia más baja, luego viene && , luego los
operadores de comparación ( > , == , etc.) y luego el resto. Este orden se ha
elegido de forma que, en expresiones típicas como la siguiente, sean necesarios
el menor número posible de paréntesis:

1 + 1 == 2 & & 10 * 10 > 50

El último operador lógico que analizaré no es unario ni binario, sino ternario y


opera con tres valores. Está escrito con un signo de interrogación y dos puntos,
así:

consola . iniciar sesión ( verdadero ? 1 : 2 );


// → 1
consola . iniciar sesión ( falso ? 1 : 2 );
// → 2

Éste se llama operador condicional (o a veces simplemente operador ternario ,


ya que es el único operador de este tipo en el lenguaje). El valor a la izquierda
del signo de interrogación "selecciona" cuál de los otros dos valores saldrá.
Cuando es verdadero, elige el valor del medio y cuando es falso, elige el valor de
la derecha.

Valores vacíos

Hay dos valores especiales, escrito null y undefined , que se utilizan para
indicar la ausencia de un valor significativo . Son valores en sí mismos, pero no
contienen información.

Muchas operaciones en el lenguaje que no producen un valor significativo (verá


algunas más adelante) dan rendimiento undefined simplemente porque tienen
que producir algún valor.

https://eloquentjavascript.net/01_values.html 11/15
7/2/24, 14:53 Valores, tipos y operadores :: JavaScript elocuente

La diferencia de significado entre undefined y null es un accidente del diseño


de JavaScript y no importa la mayor parte del tiempo. En los casos en los que
realmente tenga que preocuparse por estos valores, recomiendo tratarlos como
en su mayoría intercambiables.

Conversión automática de tip os

En la Introducción, mencioné que JavaScript hace todo lo posible para aceptar


casi cualquier programa que le proporcione, incluso programas que hacen
cosas raras. Esto queda muy bien demostrado por las siguientes expresiones:

consola . log ( 8 * nulo )


// → 0
consola . log ( "5" - 1 )
// → 4
consola . log ( "5" + 1 )
// → 51
consola . log ( "cinco" * 2 )
// →
Consola NaN . iniciar sesión ( falso == 0 )
// → verdadero

Cuando se aplica un operador al tipo de valor "incorrecto", JavaScript


convertirá silenciosamente ese valor al tipo que necesita, utilizando un
conjunto de reglas que a menudo no son las que usted desea o espera. Esto se
llama coerción de tipo . El null de la primera expresión se convierte en 0 y el
"5" de la segunda expresión se convierte en 5 (de cadena a número). Sin
embargo, en la tercera expresión, + se intenta la concatenación de cadenas
antes de la suma numérica, por lo que 1 se convierte a "1" (de número a
cadena).

Cuando algo que no se asigna a un número de manera obvia (como "five" o


undefined ) se convierte en un número, se obtiene el valor NaN . NaN Se siguen
produciendo más operaciones aritméticas NaN , por lo que si encuentra que
obtiene una de esas en un lugar inesperado, busque conversiones de tipos
accidentales.

https://eloquentjavascript.net/01_values.html 12/15
7/2/24, 14:53 Valores, tipos y operadores :: JavaScript elocuente

Al comparar valores del mismo tipo usando == , el resultado es fácil de


predecir: debería ser verdadero cuando ambos valores sean iguales, excepto en
el caso de NaN . Pero cuando los tipos difieren, JavaScript utiliza un conjunto de
reglas complicado y confuso para determinar qué hacer. En la mayoría de los
casos, simplemente intenta convertir uno de los valores al tipo del otro valor.
Sin embargo, cuando null o undefined ocurre en cualquier lado del operador,
se produce verdadero solo si ambos lados son uno de null o undefined .

consola . iniciar sesión ( nulo == indefinido );


// → verdadera
consola . iniciar sesión ( nulo == 0 );
// → falso

Ese comportamiento suele ser útil. Cuando desee probar si un valor tiene un
valor real en lugar de null o undefined , puede compararlo null con el
operador == (o ). !=

Pero ¿qué pasa si quieres comprobar si algo se refiere al valor exacto false ?
Las expresiones como 0 == false y "" == false también son verdaderas
debido a la conversión automática de tipos. Cuando no desea que se realice
ninguna conversión de tipo, existen dos operadores adicionales: === y !== . El
primero prueba si un valor es exactamente igual al otro, y el segundo prueba si
no es exactamente igual. Entonces "" === false es falso como se esperaba.

Recomiendo utilizar los operadores de comparación de tres caracteres a la


defensiva para evitar que conversiones de tipos inesperadas lo hagan tropezar.
Pero cuando esté seguro de que los tipos en ambos lados serán los mismos, no
habrá ningún problema con el uso de operadores más cortos.

Corto circuito de oper a d or e s l ó gic o s.

Los operadores lógicos && y || manejan valores de diferentes tipos de una


manera peculiar. Convertirán el valor de su lado izquierdo al tipo booleano
para decidir qué hacer, pero dependiendo del operador y el resultado de esa
conversión, devolverán el valor original de la izquierda o el valor de la derecha.

https://eloquentjavascript.net/01_values.html 13/15
7/2/24, 14:53 Valores, tipos y operadores :: JavaScript elocuente

El || operador, por ejemplo, devolverá el valor a su izquierda cuando se pueda


convertir a verdadero y, en caso contrario, devolverá el valor a su derecha. Esto
tiene el efecto esperado cuando los valores son booleanos y hace algo análogo
con valores de otros tipos.

consola . log ( nulo | | "usuario" )


// →
consola de usuario . log ( "Inés" | | "usuario" )
// → Inés

Podemos utilizar esta funcionalidad como una forma de recurrir a un valor


predeterminado. Si tiene un valor que podría estar vacío, puede colocarlo
|| después con un valor de reemplazo. Si el valor inicial se puede convertir a
falso, obtendrá el reemplazo. Las reglas para convertir cadenas y números a
valores booleanos establecen que 0 , NaN y la cadena vacía ( "" ) cuentan como
false , mientras que todos los demás valores cuentan como true . Así 0 ||
-1 produce -1 y "" || "!?" rinde "!?" .

El && operador funciona de manera similar pero al revés. Cuando el valor a su


izquierda es algo que se convierte en falso, devuelve ese valor y, en caso
contrario, devuelve el valor a su derecha.

Otra propiedad importante de estos dos operadores es que la parte a su


derecha se evalúa sólo cuando es necesario. En el caso de true || X , no
importa lo que X sea (incluso si es una parte del programa que hace algo
terrible ), el resultado será verdadero y X nunca se evaluará. Lo mismo ocurre
con false && X , que es falso y se ignorará X . Esto se llama evaluación de
cortocircuito .

El operador condicional funciona de manera similar. Del segundo y tercer valor


sólo se evalúa el que se selecciona.

Resumen

En este capítulo analizamos cuatro tipos de valores de JavaScript: números,


cadenas, booleanos y valores indefinidos.

https://eloquentjavascript.net/01_values.html 14/15
7/2/24, 14:53 Valores, tipos y operadores :: JavaScript elocuente

Dichos valores se crean escribiendo su nombre ( true , null ) o valor ( 13 ,


"abc" ). Puede combinar y transformar valores con operadores. Vimos
operadores binarios para aritmética ( + , - , * , / , y % ), concatenación de
cadenas ( + ), comparación ( == , != , === , !== , < , > , <= , >= ) y lógica ( && , || ),
así como varios operadores unarios ( - para negar un número, ! para negar
lógicamente, y typeof para encontrar el tipo de un valor) y un operador
ternario ( ?: ) para elegir uno de dos valores basándose en un tercer valor.

Esto le brinda suficiente información para usar JavaScript como calculadora de


bolsillo, pero no mucho más. El próximo capítulo comenzará a unir estas
expresiones en programas básicos.

◀◆▶

https://eloquentjavascript.net/01_values.html 15/15

También podría gustarte