Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Web dinmica: aquella que incorpora efectos, ej. Textos que aparecen y desaparecen,
animaciones, acciones cuando pulsas botones, y ventanas con mensajes de aviso.
PROGRAMACION BASICA
-Variables: funciona como una caja para guardar valores, son un identificador y nos sirve para
guardar estos valores. Gracias a ellos es posible crear programas genricos, es decir funcionan
siempre igual independientemente de otros valores o de los valores utilizados. Son
importantes porque ayudan a definir la utilidad del programa.
Las variables almacenan los valores, incluso si se cambian los valores, el programa seguira
funcionando correctamente. Porque se calcular segn el valor almacenado en la variable.
Por tanto, si se quiere que el programa funcione diferente se deben modificar las variables.
Var numero_1
Var numero_2
Como? Se le dice iniciar cuando se le asigna un valor mediante el signo = . Ej: primero se
declara la variable llamada primer_numero y luego se inicializa asignndole un valor numrico:
Se inicializa: primero_numero=5
var primer_numero=5
El nombre de una variable tambin se conoce como IDENTIFICADOR, debe cumplir las sgtes
normas:
TIPS
Recordando: todas se crean de la misma forma (mediante la palabra reservada var), la forma
en la que se le asigna un valor depende del tipo de valor que se le quiera almacenar (nmeros,
textos, etc).
1. Numricas
Utilizados para almacenar valores numricos ENTEROS (integer en ingles) o
DECIMALES (float en ingles). Se asigna indicando directamente el valor entero o
decimal. Los decimales utilizan el punto (.) en vez de coma para separar el entero del
decimal.
EJ.: TIPO ENTERO: var iva=16; TIPO DECIMAL: var total=234.65;
2. Cadenas de texto
Utilizados para almacenar caracteres, palabras y/o frases de texto. Tambin llamadas
STRING en ingles. Para asignar el valor, se encierra en comillas dobles o simples.
EJ.: var mensaje=Bienvenido a nuestro sitio web; var nombreProducto=Producto
ABC; var letraSeleccionada=c;
3. ARRAYS
En ocasiones, se les llama VECTORES, MATRICES e incluso ARREGLOS. Pero ARRAY es el
ms aceptado y utilizado en la programacin.
Que es? Es una COLECCIN DE VARIABLES.
Ej. Sencillo: Si una aplicacin necesitar manejar los das de la semana, se pueden crear
siete variables de tipo texto: var dia1=lunes; var dia2=martes; var
dia7=domingo; NO ES INCORRECTO PERO SI POCO EFICIENTE. En ejemplos mas
grandes se vuelve complicado.
Para estos casos, se puede agrupas las variables en un ARRAY. Rehaciendo:
Var das=[lunes, martes, mircoles, jueves, viernes, sbado, domingo];
Para definir un array, se utilizan [ y ] y se utiliza la coma para separar sus
elementos.
Var nombre_array=[valor1, valor2, ,valorN];
Se accede a cada ELEMENTO indicando su posicin dentro del array. NOTA: la
complicacin es que las posiciones de los elementos empiezan a contarse desde 0 (no
en el 1).
4. BOOLEANOS (boolean)
Tambin se conocen con el nombre de variables de tipo lgico. Funcionamiento
bsico: sencillo.
Almacena un tipo especial de valor que SOLO puede tomar dos valores: true o false.
NO almacena nmeros ni cadenas de texto.
EJ.: varclienteRegistrado=false; var ivaIncluido=true;
OPERADORES
Permiten manipular el valor de las variables, realizar operaciones matemticas con sus valores
y comparar diferentes variables. Es decir, permiten REALIZAR CALCULOS COMPLEJOS y tomar
DECISIONES LOGICAS en funcione de comparaciones y otros tipos de condiciones.
1. Asignacin
El ms utilizado y el ms sencillo. Utilizado para guardar un valor especifico en una
variables, el smbolo es =
EJ. var numero1=3;
A la izquiera del operador, siempre debe indicarse el nombre de la variable. A la
derecha, variables, valores, condiciones logicas, etc.
EJ. var numero1=3; var numero2=4;
Ahora la variable numero1 vale 5
numero1=5;
ahora la variable numero1 vale 4
numero1=numero2;
La asignacin siempre se realiza a una variable, siempre a la derecha.
2. Incremento y Decremento
SOLAMENTE vlidos para variables numricas y utilizados para incrementar o
decrementar en una unidad el valor de una variable.
EJ.: var numero=5;
numero++;
el valor final de numero=6
El operador de incremento de indica mediante el sufijo ++ en el nombre de la variable.
El resultado, se incrementa en una unidad. Por tanto:
EJ.: var numero=5;
Numero=numero+1;
el valor final de numero=6
De forma equivalente, el operador decremento (sufijo --)utilizado para decrementar el
valor de una variable:
EJ.: var numero=5;
numero--;
el valor final de numero=4
Equivalente a:
EJ.: var numero=5;
numero=numero-1;
el valor final de numero=4
3. Lgicos
Imprescindibles para realizar aplicaciones complejas, utilizados para tomar decisiones
sobre las instrucciones que debera ejecutar el programa en funcin de ciertas
condiciones. El resultado siempre es un valor lgico o booleano.
- Negacion: uno de los ms utilizados es la negacin. Utilizado para obtener el valor
contrario al valor de la variable:
var visible=true;
var oculto=!visible; En el ejemplo, la variable "visible" tiene un valor
verdadero. Dado esto, en la segunda lnea del cdigo se presenta una segunda
variable llamada "oculto", que es la negacin de la variable "visible". Como
"visible" tena un valor true, entonces su valor contrario es false. Esto quiere
decir que el valor de la variable "oculto" es false.
La negacin se obtiene prefijando el smbolo ! al identificador de la variable.
El funcionamiento se resume en la siguiente tabla:
variable !variable
true false
false true
Si la variable original es de tipo booleano, es muy sencillo obtener su negacin.
Los operadores relacionales tambin se pueden utilizar con variables de tipo cadena
de texto:
var texto1 = "hola";
var texto2 = "hola";
var texto3 = "adios";
Cuando se utilizan cadenas de texto, los operadores "mayor que" (>) y "menor que" (<)
siguen un razonamiento no intuitivo: se compara letra a letra comenzando desde la
izquierda hasta que se encuentre una diferencia entre las dos cadenas de texto. Para
determinar si una letra es mayor o menor que otra, las maysculas se consideran
menores que las minsculas y las primeras letras del alfabeto son menores que las
ltimas (a es menor que b, b es menor que c, A es menor que a, etc.)
Los programas que se pueden realizar utilizando solamente variables y operadores son una
simple sucesin lineal de instrucciones bsicas.
Sin embargo, se pueden realizar programas que sigan una serie instrucciones slo en casos
predeterminados, o programas que repitan de forma eficiente una misma instruccin, como
por ejemplo, sumar un determinado valor a todos los elementos de un array.
Para realizar este tipo de programas son necesarias las estructuras de control de flujo, que son
instrucciones del tipo "si se cumple esta condicin, hazlo; si no se cumple, haz esto otro".
Tambin existen instrucciones del tipo "repite esto mientras se cumpla esta condicin".
Si se utilizan estructuras de control de flujo, los programas dejan de ser una sucesin lineal de
instrucciones para convertirse en programas inteligentes que pueden tomar decisiones en
funcin del valor de las variables.
1. IF: la mas utilizada en JAVA SCRIPT, utilizada para tomar decisiones en funcin de una
condicin. Su definicin formal es:
if(condicion) { ...}
Si la condicin se cumple (es decir, si su valor es true) se ejecutan todas las
instrucciones que se encuentran dentro de {...}. Si la condicin no se cumple (es decir,
si su valor es false) no se ejecuta ninguna instruccin contenida en {...} y el programa
contina ejecutando el resto de instrucciones del script.
Ejemplo:
var verMensaje = true;
if(verMensaje) { var mensaje = Hola Mundo;}
En el ejemplo anterior, la variable mensaje s se crea, ya que la variable verMensaje
tiene un valor de true y por tanto, el programa entra dentro del bloque de
instrucciones del if.
El ejemplo se podra reescribir tambin como:
var verMensaje = true;
if(verMensaje == true) { var mensaje = Hola Mundo;}
En este caso, la condicin es una comparacin entre el valor de la variable verMensaje
y el valor true. Como los dos valores coinciden, la igualdad se cumple y por tanto la
condicin es cierta, su valor es true y se ejecutan las instrucciones contenidas en ese
bloque del if.
La condicin que controla el if() puede combinar los diferentes operadores lgicos y
relacionales mostrados anteriormente:
var mostrado = false;
if(!mostrado) { alert("Es la primera vez que se muestra el mensaje");}
MDULO 1: INTRODUCCIN
Queremos motivarte a aprender a programar, y por ello te brindaremos ms
informacin sobre cmo, a travs del cdigo, podrs transformar tu futuro. Adems, te
daremos algunos consejos para aprender a aprender. Despus de eso, te
ensearemos a crear tu primera pgina web!
# Tipo Tpico
# Tipo Tpico
02 Lectura Variables
GROWTH MINDSET
- Objetivos de aprendizaje:
Entender qu es Growth Mindset (mentalidad de crecimiento) y adoptarla antes de
empezar este curso.
- Sobre Growth Mindset
Laboratoria es un programa increble, que te ensea todo lo que necesitas para iniciar
tu carrera en el sector digital en un periodo muy corto de tiempo. Seguramente te
habrs preguntado cmo podrs lograrlo, y la respuesta est en aprender a aprender.
Alguna vez has ledo o escuchado algo sobre Growth Mindset? Al finalizar este
mdulo, esperamos que no slo entiendas este concepto, sino que adoptes una
mentalidad de crecimiento que te permita enfrentar los retos de aprender algo nuevo,
y tener la confianza de saber que podrs superarlos.
La mayora de personas creen que la inteligencia es una capacidad mental con la que
nacemos, que es esttica y que no podemos cambiar. Esta creencia ocasiona que
pensemos que nuestra inteligencia tiene un lmite, y que hay cosas que simplemente
no podremos aprender.
Antes de pasar al siguiente mdulo queremos darte algunos consejos para tu proceso
de aprendizaje:
1. El aprendizaje es mejor y perdura ms cuando necesitas esforzarte ms. Los
aprendizajes fciles se recuerdan hoy, pero no maana. Cuando el aprendizaje es
ms difcil, es ms fuerte y se queda en tu memoria ms tiempo.
2. Tratar de resolver un problema antes de que te muestren cmo hacerlo, te
permitir luego aprender y entender mejor la solucin que te enseen.
3. Cometer errores y corregirlos es lo que te permitir construir los puentes para
avanzar en el proceso de aprendizaje.
Con todos estos conocimientos que has adquirido y con tu nueva mentalidad, te
proponemos aceptar este reto: Aprender a programar para transformar tu futuro.
Y para ello, t tendrs que proponerte lo siguiente:
Yo, futura estudiante de Laboratoria, me comprometo a tener siempre presente que soy
capaz de desarrollar mi inteligencia a travs de aprendizajes que requerirn mi esfuerzo,
pero que me permitirn alcanzar un mayor logro. Me comprometo a siempre querer
aprender ms, para lo cual aceptar los retos y me mantendr persistente ante los
obstculos, pues s que con prctica podr superarlos. S que los retrocesos o los errores
que cometa no significan una falla, sino que son las oportunidades en las que ms podr
aprender. Soy consciente de que por momentos tendr dudas sobre mi capacidad para
aprender, s que no ser fcil, pero s que puedo hacerlo. Me comprometo a jams volver
a decir no puedo, sino que cambiar esta frase por no puedo an, porque tengo una
mentalidad de crecimiento.
QU ES LA PROGRAMACIN?
Las computadoras son mquinas increblemente poderosas, capaces de realizar
hazaas increbles, como jugar ajedrez competitivo, servir miles de pginas web o
hacer millones de clculos complejos en menos de unos segundos. Recientemente, las
computadoras se estn utilizando para crear automviles autnomos (que se manejan
solos), mundos enteros de realidad virtual y robots con inteligencia artificial.
Pero en el fondo, las computadoras son realmente bastante tontas. Las computadoras
slo pueden hacer exactamente lo que nosotros, los humanos, les digamos. Les
decimos cmo comportarse usando programas de computacin, que son simplemente
un conjunto de instrucciones para que las computadoras sigan. Sin programas, las
computadoras no pueden hacer nada! La programacin es, por lo tanto, el arte de
crear un conjunto de instrucciones que le indican a una computadora cmo realizar
una tarea.
POR QU APRENDER A PROGRAMAR?
La programacin es un espacio para crear. Es una forma de expresin, as como el arte
y el diseo. Es un mecanismo para transformar tus pensamientos en algo vivo que
todo el mundo puede ver y con el cual puedan interactuar. Como dijo, Steve Jobs, uno
de los gigantes del mundo tech:
Todo el mundo en este pas debera aprender a programar una computadora, porque te
ensea a pensar Steve Jobs
La programacin se ha vuelto tan importante, que se encuentra entre las carreras ms
demandadas por el mercado. Te damos tres datos del mercado de trabajo para
programadores:
1. Programador de software es la carrera que tendr mayor crecimiento en la
prxima dcada en Amrica Latina. Segn estimaciones, la regin va a tener una
necesidad de 1.25 millones de programadores hacia 2025.
2. Desarrolladores web y desarrolladores de software se encuentran dentro de las
profesiones mejor pagadas en Amrica Latina.
3. Los empleos tech ya no slo se encuentran en el sector tech. En la actualidad 2 de
cada 3 empleos tech se encuentran fuera del sector. Ello significa que la
programacin abre las puertas para trabajar en diferentes sectores y aportar tu
talento al desarrollo de distintas industrias.
Sandra (Mxico)
Danna (Chile)
Carol (Per)
Carol estudi tres aos de Diseo Grfico Publicitario. Antes de Laboratoria, trabajaba
largas horas 6 das a la semana para mantenerse a ella y a su hijo. Hoy Carol trabaja
como desarrolladora web en 54solutions, una agencia de medios digitales con un clima
laboral positivo y ganando ms que nunca.
QU ES JAVASCRIPT?
Las computadoras son tan tontas que no podemos darle nuestras instrucciones en
ingls, espaol o cualquier otro idioma hablado. Tenemos que escribir nuestros
programas en un lenguaje de programacin. JavaScript es justamente eso: un lenguaje
de programacin.
Puede que no hayas odo hablar de JavaScript antes, pero ciertamente lo has usado.
JavaScript se utiliza para escribir programas que se ejecutan en pginas web.
JavaScript puede controlar cmo se ve una pgina web o hacer que la pgina responda
cuando un usuario hace click en un botn o mueve el mouse. Sitios como Gmail,
Facebook y Twitter usan JavaScript para facilitar el envo de correo electrnico,
publicar comentarios o navegar por sitios web.
POR QU JAVASCRIPT?
Otra razn que hace interesante estudiar JavaScript en este momento es su posicin
como uno de los lenguajes de programacin ms populares. Segn GitHub, una red de
trabajo colaborativo para programadores, JavaScript es el lenguaje ms popular dentro
de esta plataforma:
HISTORIA DE JAVASCRIPT
JavaScript fue creado (en solo 10 das!) por Brendan Eich, en 1995, para crear
interactividad y dinamismo en Netscape Navigator, uno de los primeros navegadores
web. Desde entonces, JavaScript ha sido adoptado por la mayora de los navegadores
modernos (piensa en Chrome, Safari, etc.). Y por muchos aos JavaScript fue utilizado
nicamente dentro del navegador. Sin embargo, hoy en da se utiliza JavaScript
tambin fuera del navegador para crear cualquier tipo de cosas. Las aplicaciones de
JavaScript son casi infinitas - lo cual lo hace un excelente lenguaje de programacin
que aprender.
Developer Tools
Consola de Java
https://www.youtube.com/watch?v=_guTQcHaUQo
JAVASCRIPT != JAVA
Objetivos de aprendizaje:
Entender la funcin del HTML para crear la estructura bsica de una pgina web.
Conocer los principales elementos y etiquetas HTML.
Aprender a darle dinamismo a una web utilizando JavaScript.
Tener un primer acercamiento al mundo del cdigo, creando tu primera pgina
web.
El texto a continuacin es una traduccin al espaol, con ciertos ajustes, del captulo 5
de JavaScript for kids, Nick Morgan, 2015; y de Eloquent JavaScript, de Marijn
Haverbeke, 2014.
La consola de JavaScript que hemos utilizado hasta ahora es ideal para probar
pequeos fragmentos de cdigo. Sin embargo, para crear programas reales,
necesitaremos algo ms flexible, como una pgina web. En esta seccin aprenders
cmo crear una pgina web HTML bsica y darle interaccin con JavaScript.
El navegador "lee" el archivo HTML (el texto y las etiquetas que estn adentro) y las
presenta segn las reglas del lenguaje. Por ejemplo, los textos que estn dentro de las
etiquetas <h1> </h1> son considerados encabezados o titulares, mientras que los
textos dentro de las etiquetas <p> </p> son considerados prrafos. Por eso, el texto
Hola Mundo! se visualiza mucho ms grande que el texto Esta es mi primera web.
Como ya lo dijimos, la mejor manera de aprender es haciendo. Por eso, es hora de que
t misma crees una web y aprendas HTML.
https://www.youtube.com/watch?v=wQKn1fh3pAM
En el siguiente video, Michelle te guiar a travs de los siguientes pasos para que crees
tu primera web:
https://www.youtube.com/watch?v=QP9FF9eoh-k
HTML Y JAVASCRIPT
Para incluir JavaScript en un documento HTML puedes utilizar el elemento script y colocar tu
cdigo JavaScript entre sus etiquetas de inicio (<script type="text/javascript">) y cierre
(</script>), tal como lo muestra el siguiente ejemplo:
<!DOCTYPE html>
<html>
<head>
<title>Mi primera web</title>
</head>
<body>
<h1>Hola Mundo!</h1>
<p>Esta es mi primera web</p>
<script type="text/javascript">
alert('Hola Mundo!');
</script>
</body>
</html>
Muchas veces tu cdigo JavaScript es tan extenso que no quieres que est ubicado en el
mismo documento HTML. Para eso, la solucin es crear un nuevo documento, esta vez de
formato JavaScript - utilizando la extensin .js - y "linkear" ambos documentos a travs del
mismo elemento script, de la siguiente manera:
<script src="nombre-del-documento.js"></script>
El mismo elemento script tiene un "atributo" llamado src (de source, que significa fuente en
ingls), al cual se le puede asignar la ruta de tu documento JavaScript.
TIPOS DE DATOS
Las computadoras son un gran recurso para trabajar con grandes cantidades de datos. De
hecho, en el mundo de las computadoras solo existen datos. Con los computadores podemos
leer data, modificar data y crear nueva data. Toda la data es almacenada como secuencias
largas de los famosos bits - esas secuencias de unos y ceros que viste en Matrix.
Las computadoras manejan billones de bits. Para hacer ms fcil el manejo de grandes
cantidades de bits, los podemos dividir en "pedazos" que representan piezas de informacin.
En un entorno JavaScript, estos pedazos son llamados values (valores en espaol). Cada value
tiene un data type (tipo de dato) que determina su rol. En JavaScript existen cinco (5) tipos de
datos primitivos:
1. numbers (nmeros).
2. strings (cadenas).
3. booleans (booleanos).
4. undefined (indefinido).
5. null (nulo).
La data y los tipos de datos forman las bases de cualquier lenguaje de programacin. Nos
permiten organizar informacin y determinar cmo correr el programa. En esta leccin
aprenders a definir y manipular estos tipos de datos.
1. Numbers
Los values de tipo number son, sin sorpresa alguna, valores numricos. Es decir, pedazos de
data que representan informacin numrica se representan con el tipo number. Esto incluye
nmeros positivos, negativos, enteros y decimales. Adems, el tipo de datos number tiene tres
valores simblicos: +Infinity, -Infinity y NaN (no-un-nmero).
Veamos varios ejemplos. Abre tu consola (recuerda que lo haces haciendo click con el botn
derecho del mouse -> inspect -> console) y escribe los siguientes nmeros. Al hacerlo, la
consola te lo regresa el nmero de vuelta.
13
// returns > 13
-9.81
// returns > -9.81
Tambin puedes hacer uso de la notacin cientfica para nmeros muy grandes o muy
pequeos, aadiendo una "e" de "exponente", seguido por el exponente del nmero:
5e10
// returns > 50000000000
-2.998e8
// returns > -299800000
OPERADORES ARITMTICOS
Lo principal que se hace con los nmeros es aritmtica. Sigamos explorando el
comportamiento del tipo de dato numbers en tu consola. Escribe el siguiente ejemplo en tu
consola y confirma que tienes el mismo resultado:
100 + 4 * 11
// returns > 144
Los smbolos + y * son llamados operators (operadores). El primero representa la suma y el
segundo la multiplicacin. Al poner un operador entre dos valores, se aplicar la operacin a
esos valores y producir un nuevo valor. Como ves, la multiplicacin ocurre primero. Pero
como en matemticas, puedes cambiar esto encerrando en parntesis la suma.
(100 + 4) * 11
// returns > 1144
Para la resta existe el operador -, y la divisin se puede hacer con el operador /. Veamos ms
ejemplos (recuerda hacerlos en tu consola tambin!):
12345 / 250
// returns > 49.38
1234 + 57 * 3 - 31 / 4
// returns > 1397.25
100 / 0
// returns > Infinity
100 / -0
// returns > -Infinity
1000 * Infinity
// returns > Infinity
0/0
// returns > NaN
Infinity - Infinity
// returns > NaN
Tambin existe un operador aritmtico ms, que podras no reconocer inmediatamente. El
smbolo % es usado para representar la operacin residuo. X % Y resulta en el residuo de
dividir X entre Y. Por ejemplo, 314 % 100 produce 14 (porque 100 multiplicado por 3 + 14 =
314), y 144 % 12 da 0 (porque 12 multiplicado por 12 + 0 = 144). Vers a menudo este
operador referido como mdulo, aunque tcnicamente residuo es ms preciso.
5 % 3
// returns > 2
7 % 2
// returns > 1
2. Strings
La siguiente data type bsico son los strings. Es el tipo de dato que utilizamos para representar
texto. Se declaran al poner el contenido entre comillas.
Abre tu consola y escribe lo siguiente:
"Hola, mi nombre es Michelle"
// returns > "Hola, mi nombre es Michelle"
'Soy desarrolladora web'
// returns > "Soy desarrolladora web"
"123"
// returns > "123"
Tanto las comillas simples como las dobles pueden ser usadas para declarar strings, siempre y
cuando coincidan al principio y al final. Casi cualquier cosa puede colocarse entre comillas, y
JavaScript crear un string value de esa cosa.
Existen un par de caracteres en los data types strings que tienen un comportamiento especial.
Por ejemplo, cuando una diagonal invertida ("\") se encuentra dentro de un texto entre
comillas, indica que el carcter siguiente tiene un significado especial. Esto se denomina
escapar el carcter. Cuando el carcter n sigue a una diagonal invertida, se interpreta como
una nueva lnea. Similarmente, una t despus de la diagonal invertida significa un tab. Escribe
los siguientes textos en tu consola (recuerda siempre colocarlos entre comillas, sean simples o
dobles).
"Esta es la primera lnea \n Y esta la segunda"
// returns > "Esta es la primera lnea
// Y esta la segunda"
'Mi lenguaje favorito es \t JavaScript'
// retuns > "Mi lenguaje favorito es JavaScript"
Cuando una comilla es precedida por una diagonal invertida, la comilla no terminar la
cadena sino que ser parte de ella (la cadena).
"Yo \"estudio\" en Laboratoria"
// returns > "Yo "estudio" en Laboratoria"
Existen, por supuesto, situaciones en las que querrs que una diagonal invertida sea slo eso
en una cadena de texto, no un cdigo especial. Si dos diagonales invertidas estn juntas, se
volvern una, y slo eso quedar como resultado en el valor de la cadena.
"Un carcter de nueva lnea es escrito \"\\n\"."
// returns > "Un carcter de nueva lnea es escrito "\n"."
Las cadenas de texto no pueden ser divididas numricamente, multiplicadas, o restadas, pero
el carcter + puede ser usado en ellas. No suma, sino que concatena; pega dos strings. La
siguiente lnea produce el string "concatenar":
"con" + "cat" + "e" + "nar"
// returns > "concatenar"
Ten cuidado mezclando operaciones entre numbers y strings. Por ejemplo, multiplicar un
number por un string resulta en NaN.
"hola" * 3
// returns > NaN
Hay ms maneras de manipular strings, que veremos ms adelante.
OPERADORES UNARIOS
No todos los operadores son smbolos. Algunos son escritos como palabras. Un ejemplo es el
operador typeof, que produce una cadena de texto que representa el tipo del valor que le
pasaste.
typeof 4.5
// returns > "number"
typeof "hola"
// returns > "string"
typeof NaN
// returns > "number"
typeof Infinity
// returns > "number"
Fjate que verificamos que NaN e Infinity son del tipo number (de valor simblico), tal como lo
mencionamos anteriormente.
Los otros operadores que hemos visto operaban sobre dos valores, pero typeof slamente
toma un valor. Los operadores que usan dos valores son llamados operadores binarios,
mientras que aquellos que slo toman uno son llamados operadores unarios.
El operador menos puede usar tanto como operador binario como operador unario.
- (10 - 2)
// returns > -8
3. Booleans
A menudo, necesitars un valor que simplemente distinga entre dos posibilidades, como "s" y
"no" o "encendido" y "apagado". Para esto, JavaScript tiene un tipo de dato boolean, que tiene
slo dos valores: true (verdadero) y false (falso).
OPERADORES COMPARATIVOS
Realiza esta comparacin en tu consola:
3 > 2
// returns > true
2 < 3
// returns > false
typeof (3 > 2)
// returns > "boolean"
typeof (2 > 3)
// returns > "boolean"
Los signos > y < son los smbolos tradicionales para "es mayor que" y "es menor que",
respectivamente. Estos son operadores binarios (porque opera sobre dos valores). Aplicarlos
resulta en un valor de tipo boolean que indica si son ciertos.
Los strings pueden ser comparados de la misma manera.
"Aardvark" < "Zoroaster"
// returns > true
La manera en que los strings son ordenadas es ms o menos alfabticamente: las letras
maysculas son siempre "menores" que las minsculas, as que "Z" < "a" es true, y los
caracteres no alfabticos (!, -, y as por el estilo) son tambin incluidos en el ordenamiento.La
comparacin real est basada en el estndar Eloquent Unicode.
"Zeyla" < "ana"
// returns > true
"Zeyla" < "!na"
// returns > false
Otros operadores similares son >= (mayor o igual que), <= (menor o igual que), == (igual que), y
!= (no es igual que).
"Itchy" == "Itchy"
// returns > true
"Itchy" != "Scratchy"
// returns > true
5 == 5
// returns > true
10 != "diez"
// returns > true
Slo existe un valor en JavaScript que no es igual a s mismo, y este es NaN, que significa "no es
un nmero".
NaN == NaN
// returns > false
La intencin de NaN es representar el resultado de un clculo sin sentido y como tal, no es
igual al resultado de cualquier otro clculo sin sentido.
OPERADORES LGICOS
Hay tambin algunas operaciones que pueden ser aplicadas a los valores Booleans. JavaScript
soporta tres operadores lgicos: and, or y not. Estos pueden ser usados para "razonar" con los
Booleans.
El operador && representa la operacin lgica and ("y"). Es un operador binario, y su resultado
es true (verdadero) slo si los dos valores dados son verdaderos. El operador || denota la
operacin lgica or ("o"). Devuelve verdadero si cualquiera de los dos valores dados es
verdadero. Not (Negacin) es escrito como un smbolo de admiracin !. Es un operador binario
que voltea el valor que se le de; !true produce false y !false produce true. Veamos unos
ejemplos:
true && true
// returns > true
true && false
// returns > false
false && false
// returns > false
true || true
// returns > true
true || false
// returns > true
!true
// returns > false
!false
// returns > true
El ltimo operador lgico del que aprenders no es unario, ni binario, sino ternario, opera en
tres valores. Este es escrito con un smbolo de interrogacin y dos puntos, como sigue:
true ? 1 : 2
// returns > 1
false ? 1 : 2
// returns > 2
Este es llamado el operador condicional (o algunas veces el operador tenario dado que es el
nico operador de este tipo en el lenguaje). El valor a la izquierda del signo de interrogacin
"escoge" cul de los otros dos valores resultar. Cuando es verdadero, el valor central es
escogido, y cuando es falso, el valor de la derecha se da como resultado.
4. Null y undefined
Existen dos valores especiales, escritos null y undefined, que son usados para denotar la
ausencia de un valor significativo. Son valores en s mismos, pero no poseen ninguna
informacin. Muchas operaciones en el lenguaje que no producen un valor con significado (lo
vers despus) producen undefined simplemente porque tienen que producir algn valor.
La diferencia en el significado entre undefined y null es un accidente del diseo de JavaScript, y
no importa la mayora del tiempo.
En el caso de la quinta expresin, cuando comparamos valores que tienen tipos de dato
diferentes, JavaScript usa un complicado y confuso conjunto de reglas para determinar qu
hacer. En la mayora de los casos, slo trata de convertir uno de los valores al tipo de dato del
otro valor. Sin embargo, cuando null o undefined estn en cualquier lado de la operacin,
resulta verdadero slo en el caso de que los dos lados sean null o undefined.
Siguiendo con la quinta expresin, las reglas para convertir cadenas y nmeros a Booleanos
dicen que 0, NaN y la cadena vaca ("") cuentan como false, mientras que todos los dems
valores cuentan como true. Debido a esto, las siguientes expresiones retornan true:
false == 0
// returns > true
"" == 0
// returns > true
Para casos en el que no quieres que ocurra ninguna conversin automtica de tipos, existen
dos operadores extra: === y !==. El primero prueba si un valor es precisamente igual a otro, y
el segundo si no es precisamente igual. Por lo tanto, al cambiar de == a === las mismas
expresiones anteriores, tenemos el resutado contrario: false:
false === 0
// returns > false
"" === 0
// returns > false