Java Script
Java Script
Estas cajas de dilogos pueden ser usadas en los sitios web para que los
usuarios confirmen acciones. Probablemente las has visto aparecer cuando
intentas borrar cosas importantes o cuando sales de un sitio web sin grabar los
cambios.
Qu es programar?
Programar es como escribirle al computador una lista de instrucciones, de
forma que pueda hacer cosas geniales con la informacin que le das.
Los programas no pueden tender tu cama por ti, pero s pueden hacer
clculos, llevar un registro de tu cuenta en el banco o enviarle un mensaje a
uno de tus amigos.
Para realizar cualquiera de estas acciones, el programa necesita que se le
ingresen datos. Puedes pedirle al usuario que ingrese datos mediante un
prompt.
Ejemplos:
1. prompt("Cul es tu nombre?");
2. prompt("Qu es Ubuntu?");
b. strings son secuencias de caracteres, como las letras a-z, los espacios, e
incluso los nmeros. Todos estos son strings: "Ryan", "4" y"Cul es tu
nombre?" Los strings son muy tiles como etiquetas, nombres y contenido para
tus programas.
Para generar un nmero en tu cdigo, simplemente escrbelo como un
numeral sin comillas: 42, 190.12334.
Para escribir un string, debes ponerlo entre comillas: "Cul es tu nombre?"
Usando console.log
Posiblemente te hayas dado cuenta de que el intrprete no muestra mensajes
de todas las acciones que ejecuta. As que a veces, cuando queremos saber
qu es lo que est pensando, tenemos que preguntarle directamente.
Comparaciones
Hemos aprendido acerca de tres tipos de datos: numbers, strings y booleanos.
Vamos a aprender sobre los operadores de comparacin y como se relacionan
con los tipos de datos.
Lista de operadores de comparacin:
Decisiones, decisiones...
Buen trabajo con las comparaciones! Ahora vamos a echarle un vistazo a qu
tan tiles pueden ser.
Puedes usar comparaciones ms booleanos para decidir si un bloque de
cdigo debe ejecutarse. A esto se le llama una sentencia if o sentencia
condicional.
Mira el cdigo en la parte derecha. El computador primero observa la lnea
1. Si la condicin (en este caso, si 100 < 2) es true, entonces ejecuta el cdigo
dentro de las llaves {}.
Si la condicin es false, omite el cdigo en las llaves por completo y pasa a la
siguiente lnea, que es la lnea 6.
Buen trabajo con las sentencias if! Ahora vamos a darle a tu robot dos
opciones.
El robot ha llegado a una encrucijada en el camino. Va a revisar el programa
que escribiste para decidir qu camino debera tomar.
En forma de cdigo, se ve ms o menos as:
if (si esta condicin es true)
{
// ejecuta este cdigo
}
else // "de otra manera"
{
// ejecuta en cambio este cdigo
}
Matemticas
Ya hemos visto las operaciones matemticas bsicas. Los smbolos
matemticos bsicos que aprendimos en la escuela tambin funcionan aqu.
Hasta el orden en el que el computador entiende las matemticas es el mismo
que en la escuela!
Cdigo:
1. ( ): controla el orden de las operaciones
2. * y /: multiplicacin y divisin
3. - y +: resta y suma
Ejemplos:
1. 100/10 es igual a 10
2. "Jane".length + 5 es igual a 9
3. 5*(3+1) es igual a 20
Matemticas y modulo
Vamos a ver un smbolo interesante llamado modulo. Cuando se
coloca %entre dos nmeros, el computador dividir el primer nmero por el
segundo, y luego dar como resultado el residuo de esa divisin.
As que, si escribimos 23 % 10, estamos dividiendo 23 entre 10, lo que da como
resultado 2, y el residuo es 3. As que 23 % 10 es igual a 3.
Ms ejemplos:
17 % 5 es igual a 2
13 % 7 es igual a 6
Subcadenas
Hemos aprendido unas cuantas maneras de manipular los nmeros. Qu hay
acerca de los strings?
En ocasiones no querrs que aparezca el string completo, sino solo una parte
de l. Por ejemplo, puedes configurar tu bandeja de entrada de Gmail para que
muestre los primeros 50 (o ms o menos) caracteres de cada mensaje, de
manera que tengas una vista previa de ellos. Esta vista previa es
unasubcadena del string original (el mensaje completo).
Cdigo:
"alguna palabra".substring(x, y)donde x es el punto donde se comienza a cortar
Variables
Hemos aprendido como hacer algunas cosas: a hacer strings, a saber cuntos
caracteres tiene un string, a saber qu caracter est en una determinada
posicin y a hacer operaciones matemticas bsicas. No est mal para ser el
trabajo de un da!
Para escribir un cdigo que sea ms complejo, necesitamos una forma de
'guardar' los valores de nuestro cdigo. Esto lo hacemos definiendo una
Example:
a. var miNombre = "Leng";
b. var miEdad = 30;
c. var esImpar = true;
Ejemplo:
var miEdad = 30;
Digamos
que
cumpl
aos
miEdad = 31;
Conclusin: Parte 1
Vamos a hacer un repaso rpido!
Tipos de datos
quiero
cambiar
cuntos
aos
tengo.
};
//En la lnea 11, llamamos a la funcin por su nombre
//Ahora la llamamos desde 'dividirportres'
//Le decimos al computador cul es el nmero de entrada (es decir, 6)
//Entonces el computador usa el cdigo dentro de la funcin
dividirPorTres(6);
Sintaxis de funcin
Piensa que una funcin tiene cuatro partes.
1.
2.
3.
4.
Digamos que quieres mostrar en un mensaje un saludo cada vez que una
persona pase al frente de tu escritorio. Y que quieres personalizar ese saludo
con
sus
nombres.
Si
escribieras:
console.log("Hola,
Betty");
console.log("Hola,
Laura");
1.
2.
3.
4.
5.
6.
Comando return
Buen trabajo! Ahora, cuando llamemos a una funcin, no siempre queremos
que simplemente muestre un mensaje. Algunas veces queremos
que retorne un valor. Entonces podemos usar ese valor (es decir, el resultado
de la funcin) en otro cdigo. Vamos a aprender acerca del comando return, y
luego veremos cmo usar las funciones con una sentencia if / else en el
siguiente ejercicio!
El comando return simplemente le devuelve al programador el valor que
resulta de una funcin. De esta forma, una funcin se ejecuta, y cuando se usa
return, la funcin dejar de ejecutarse inmediatamente y devolver el valor.
Para ver detalles sobre las cuatro diferentes maneras de usar return, mira la
sugerencia.
Funciones y if / else
Una aplicacin especialmente til de cdigo son las sentencias if / else. Pueden
tener muchas palabras, y ser un dolor de cabeza a la hora de escribirlas
repetidamente.
Vamos a escribir una funcin que tome como parmetro los ingresos de una
persona. Dentro de la funcin habr una sentencia if / else. Queremos que la
Cada bucle for hace uso de una variable de conteo. Aqu llamamos a nuestra
variable i (pero puede tener cualquier nombre). La variable desempea
muchos papeles. La primera parte del bucle for le dice al computador que
comience con un valor de 1 para i. Lo hace declarando la variable llamada i y
dndole un valor de 1.
Cuando el bucle for ejecuta el cdigo en el bloque de cdigo -la parte entre { }lo hace comenzando desde i=1
As, este bucle seguir ejecutndose hasta que i = 11 (es decir, mientras que i <
11). As que cuando i = 2, o i = 9, el bucle se ejecutar. Pero cuando ideje de ser
menor que 11, el bucle se detendr.
Cmo funciona?
Hemos visto los tres elementos de la sintaxis de un bucle for. Pero
exactamente cmo funciona? Vamos a imaginar que en la derecha estn los
pasos que sigue el computador para ejecutar el bucle for.
1.
Comienza con i = 2
2.
3.
4.
5.
Una vez que el bloque de cdigo est terminado, el bucle for incrementa
o disminuye. Ahora sumamos 1.
6.
7.
8.
Sintaxis:
var nombreArreglo = [datos, datos, datos];
2.
Los arreglos estn indexados con base 0, as que tenemos que comenzar a
contar las posiciones desde 0.
Bucles y arreglos I
Qu buen trabajo! Has aprendido sobre los arreglos, y como acceder a un
elemento del arreglo. Pero, qu tal que el arreglo tuviera 100 elementos?
En los arreglos, una manera til de acceder sistemticamente a cada elemento
es usando un bucle for!
Cmo funciona?
1. La lnea 3 declara el arreglo. ste tiene 4 elementos.
2. Luego, comenzamos por el bucle for en la lnea 5.
3. Vemos que i comienza con un valor de 0.
4. El bucle for se ejecuta hasta que i < 4 (porque ciudades.length es igual a 4. El
arreglo ciudades tiene 4 elementos; consulta la Sugerencia para saber ms.)
5. Incrementaremos i en 1 cada vez que se complete un bucle.
6. Imprimimos ciudades[0], que es igual a "Melbourne".
7. Luego volvemos a empezar el bucle. Excepto que ahora i=1.
8. Imprimiremos ciudades[1], que es "Amn".
9. Esto se repite hasta que i ya no sea menor que ciudades.length.
Bucles y arreglos II
Es hora de que escribas tu propio arreglo y lo combines con un bucle.
Recuerda:
1.
Debes poner comas entre cada uno de los elementos del arreglo.
2.
3.
4.
A propsito de 'while'
Buen trabajo con los bucles for! Sabemos que ya conoces del tema, pero, solo
como recordatorio; la sintaxis de los bucles for se ve as:
for(var i = inicio; i < fin; i++){
// Realizar una accin
}
En este caso, "inicio" es donde inicia nuestra variable de conteo (por lo general
es i) y "fin" es la condicin que finaliza el bucle.
Pero, qu tal si no sabes por anticipado cul ser tu contador o cuntas veces
tendrs que ejecutar el bucle? Presentamos a while.
Sintaxis de 'while'
El bucle while es ideal cuando quieres usar un bucle pero no sabes cuntas
veces tendrs que ejecutarlo.
En el ejemplo que acabamos de ver, el computador estaba lanzando una
moneda al azar: Con while, si el lanzamiento resultaba en 'cara', la moneda
sera lanzada de nuevo; pero si el resultado era 'sello', el lanzamiento se
detendra. Como el lanzamiento era aleatorio, no podramos saber con
anticipacin cuntos bucles necesitaramos.
La sintaxis se ve as:
while(condicin){
// Realiza una accin!
}
es lo mismo que
var bool = true;
while(bool === true){
//Realiza una accin
}
A veces quieres estar seguro de que tu bucle se ejecuta al menos una vez, sin
importar nada. Si este es el caso, lo que buscas es un bucle while modificado,
llamado un bucle do/while.
Este bucle dice: "Oye! Realiza esta accin una vez, luego comprueba la
condicin para saber si debemos seguir ejecutando el bucle."
EJEMPLO:
var atacar = true;
var tuAciertas = Math.floor(Math.random() * 2);
var dannoEsteRound = Math.floor(Math.random() * 5 + 1);
var dannoTotal = 0;
while (atacar) {
if (tuAciertas) {
console.log("Lograste golpear y le hiciste" + dannoEsteRound + " dao!");
dannoTotal += dannoEsteRound;
if (dannoTotal >= 4) {
console.log("Lo hiciste! venciste al dragon!");
atacar = false;
} else {
tuAciertas = Math.floor(Math.random() * 2);
}
} else {
console.log("El dragon te hizo cenizas! Estas frito .");
atacar = false;
}
}
If / else if / else
Qu bien! Tambin vamos a practicar un poco con else, as como a aprender
sobre una nueva funcin de lujo: isNaN.
Si usas isNaN con algn elemento, la funcin verifica que ese elemento no
sea un nmero. Por lo tanto:
isNaN('baya') // => true
Descripcin general
Hasta ahora hemos visto cmo controlar nuestros programas con una sola
condicin: por ejemplo, si una variable es igual a determinado valor. Pero, qu
tal si queremos comprobar ms de una variable?
Para eso necesitaremos los operadores lgicos. JavaScript tiene tres de
ellos: and (&&), or (||), y not(!).
Con ellos podemos comprobar varias variables al mismo tiempo! Observa el
cdigo en el editor.
Y
El operador lgico and se escribe en JavaScript de esta forma: &&. Da como
resultado true cuando ambasexpresiones son true; si no lo son, da como
resultado false.
true && true // => true
true && false // => false
false && true // => false
false && false // => false
Or
El operador lgico or se escribe en JavaScript de esta forma: ||. Da como
resultado true cuando una, o la otra, o ambas expresiones son true; si no lo son,
da como resultado false.
true || true // => true
true || false // => true
false || true // => true
false || false // => false
Not
El operador lgico not se escribe en JavaScript de esta forma: !. Hace que las
expresiones true se vuelvanfalse, y viceversa.
!true // => false
!false // => true
.toUpperCase() y .toLowerCase()
Quizs observaste que utilizamos la funcin .toUpperCase() en el primer
ejercicio. La utilizamos de esta manera:
var variable = prompt("Pregunta para el usuario").toUpperCase();
Arreglos heterogneos
Ahora que hemos repasado algunos arreglos bsicos, es hora de aprender
algunas cosas nuevas.
Primero, no es necesario que ubiques el mismo tipo de datos en un arreglo. No
tienes que tener
var pronombres = ["Yo", "T", "Nosotros"];
var numeros = [1, 2, 3];
Puedes tener un arreglo heterogneo, lo que quiere decir que es una mezcla
de tipos , as:
Arreglos de arreglos
Qu bien! Lo siguiente a saber es que, no solamente puedes colocar una
combinacin de tipos en un arreglo, sino que tambin puedes colocar otros
arreglos dentro de los arreglos. Puedes hacer un arreglo en dos
dimensionesanidando los arreglos en una capa ms adentro, as:
var 2d = [[1, 1], [1, 1]];
Este arreglo tiene dos dimensiones porque contiene dos filas, y cada una
contiene dos elementos. Si quisieras insertar una nueva lnea entre las dos
filas, podras mostrar en la consola un objeto 2D (un cuadrado), as:
[1, 1]
[1, 1]