Oficial 03 JavaScript
Oficial 03 JavaScript
Oficial 03 JavaScript
JavaScript
Docente: Mitchel Videla Caldern
JavaScript.
El lenguaje Javascript tiene una sintaxis muy parecida a la de Java
por estar basado en l.
Comentarios.
<SCRIPT>
//Este es un comentario de una lnea
/*Este comentario se puede extender
por varias lneas.
Las que quieras*/
</SCRIPT>
JavaScript.
Maysculas y minsculas:
En javascript se han de respetar las maysculas y las minsculas.
Separacin de instrucciones:
Javascript tiene dos maneras de separar instrucciones.
A travs del carcter punto y coma (;) y
A travs de un salto de lnea.
Declaracin de variables
Declaracin de variables
Variables globales
Las variables globales son las que estn declaradas en el mbito ms
amplio posible, que en Javascript es una pgina web. Para declarar
una variable global a la pgina simplemente lo haremos en un
script, con la palabra var.
<script>
var variableGlobal;
</script>
Variables locales
Podemos declarar variables en una funcin. A estas variables les
llamaremos locales. Cuando se declaren variables locales slo
podremos acceder a ellas dentro del lugar donde se ha declarado.
<script>
function mifuncion (){
var variableLocal;
}
</script>
Variables en JavaScript
Nmeros
Tenemos el tipo numrico, para guardar nmeros como 9 o 23.6
Cadenas
El tipo cadena de carcter guarda un texto. Siempre que escribamos
una cadena de caracteres debemos utilizar las comillas (").
Boleanos
Tambin contamos con el tipo booleano, que guarda una
informacin que puede valer si (true) o no (false).
Variables en JavaScript
Ejemplos:
var nombre_ciudad = "Valencia;
var revisado = true;
nombre_ciudad = 32;
revisado = "no;
Variables en JavaScript
Salto de lnea
Comilla simple
Comilla doble
Tabulador
Retorno de carro
Avance de pgina
Retroceder espacio
Contrabarra
:
:
:
:
:
:
:
:
\n
\'
\"
\t
\r
\f
\b
\\
Operadores Javascript
Operadores aritmticos.
+
Suma de dos valores.
Resta de dos valores, tambin puede utilizarse para cambiar
el signo de un nmero si lo utilizamos con un solo operando
-23
*
Multiplicacin de dos valores
/
Divisin de dos valores
%
El resto de la divisin de dos nmeros (3%2 devolvera 1, el
resto de dividir 3 entre 2)
++
Incremento en una unidad, se utiliza con un solo operando
-Decremento en una unidad, utilizado con un solo operando
Operadores Javascript
Ejemplos
precio = 128; //un 128 en la variable precio
unidades = 10; //otra asignacin
factura = precio * unidades; //multiplica precio por unidades
resto = factura % 3; //el resto de dividir la variable factura por 3
precio++; //incrementa en una unidad el precio (ahora vale 129)
Operadores Javascript
Operadores de asignacin.
=
Asignacin. Asigna la parte de la derecha del igual a la parte
de la izquierda.
+=
Asignacin con suma. Realiza la suma de la parte de la
derecha con la de la izquierda y guarda el resultado en la
parte de la izquierda.
-=
Asignacin con resta
*=
Asignacin de la multiplicacin
/=
Asignacin de la divisin
%=
Se obtiene el resto y se asigna
Operadores Javascript
Ejemplos
ahorros = 7000;
ahorros += 3500;
ahorros /= 2;
Operadores Javascript
Operadores de cadenas
Las cadenas de caracteres tambin tienen sus propios operadores
para realizar acciones tpicas sobre cadenas. Aunque javascript slo
tiene un operador para cadenas se pueden realizar otras acciones
con una serie de funciones predefinidas en el lenguaje.
+ Concatena dos cadenas, pega la segunda cadena a continuacin
de la primera.
Ejemplo
cadena1 = "hola
cadena2 = "mundo
cadenaConcatenada = cadena1 + cadena2 //cadena concatenada
vale "holamundo"
Operadores Javascript
miNumero = 23
miCadena1 = "pepe
miCadena2 = "456
resultado1 = miNumero + miCadena1 //resultado1 vale "23pepe
resultado2 = miNumero + miCadena2 //resultado2 vale "23456
miCadena2 += miNumero
//miCadena2 ahora vale
"45623"
Operadores Javascript
Operadores lgicos
Estos operadores sirven para realizar operaciones lgicas, que son
aquellas que dan como resultado un verdadero o un falso, y se
utilizan para tomar decisiones en los scripts.
!
&&
||
Operadores Javascript
Ejemplo
miBoleano = true
miBoleano = ! miBoleano //miBoleano ahora vale false
tengoHambre = true
tengoComida = true
comoComida = tengoHambre && tengoComida
Operadores Javascript
Operadores condicionales.
==
!=
>
<
>=
<=
Operadores Javascript
Operadores Javascript
Operadores Javascript
Ejemplo.
12 * 3 + 4 - 8 / 2 % 3
En este caso primero se ejecutan los operadores * / y %, de
izquierda a derecha, con lo que se realizaran estas operaciones.
Primero la multiplicacin y luego la divisin por estar ms a la
izquierda del mdulo.
36 + 4 - 4 % 3
Ahora el mdulo.
36 + 4 - 1
Por ltimo las sumas y las restas de izquierda a derecha.
40 1 = 39
Estructuras de control
Sintaxis del if
if (expresin) {
acciones a realizar en caso positivo
...
}
if (expresin) {
acciones a realizar en caso positivo
...
} else {
acciones a realizar en caso negativo
}
Estructuras de control
Ejemplo 1.
if (dia == "lunes")
document.write ("Que tengas un feliz comienzo de semana");
Ejemplo 2.
if (credito >= precio) {
document.write("has comprado el artculo " + nuevoArtculo);
carrito += nuevoArticulo;
credito -= precio;
} else {
document.write("se te ha acabado el crdito");
window.location = "carritodelacompra.html;
}
Estructuras de control
Ejemplo 3.
if (edad > 18)
document.write("puedes ver esta pgina para adultos");
Ejemplo 4.
if (bateria == 0 && redElectrica == 0)
document.write("tu ordenador portatil se va a apagar en segundos");
Estructuras de control
Ejemplo 5 - if anidados
var numero1=23
var numero2=63
if (numero1 == numero2){
document.write("Los dos nmeros son iguales")
}else{
if (numero1 > numero2) {
document.write("El primer nmero es mayor que el segundo")
}else{
document.write("El primer nmero es menor que el segundo")
}
}
Estructuras de control
Operador if
Variable = (condicin) ? valor1 : valor2
Ejemplo:
momento = (hora_actual < 12) ? "Antes del medioda" : "Despus del medioda"
Estructuras de control
SWITCH
switch (expresin) {
case valor1:
Sentencias a ejecutar si la expresin tiene como valor a valor1
break
case valor2:
Sentencias a ejecutar si la expresin tiene como valor a valor2
break
case valor3:
Sentencias a ejecutar si la expresin tiene como valor a valor3
break
default:
Sentencias a ejecutar si el valor no es ninguno de los anteriores
}
Estructuras de control
Ejemplo.
switch (dia_de_la_semana) {
case 1:
document.write("Es Lunes")
break
case 2:
document.write("Es Martes")
break
case 3:
document.write("Es Mircoles")
break
case 4:
document.write("Es Jueves")
break
case 5:
document.write("Es viernes")
break
case 6:
case 7:
document.write("Es fin de semana")
break
default:
document.write("Ese da no existe")
}
Estructuras de control
FOR
for (inicializacin; condicin; actualizacin) {
sentencias a ejecutar en cada iteracin
}
Ejemplo 1.
var i
for (i=0; i<=10; i++) {
document.write(i)
}
Estructuras de control
Ejemplo 2.
for (i=1; i<=1000; i+=2)
document.write(i)
Ejemplo 3.
for (i=343; i>=10; i--)
document.write(i)
}
Estructuras de control
Ejemplo 4.
Si deseamos escribir en una pgina web mediante Javascript es lo
siguiente:
<H1>Encabezado de nivel 1</H1>
<H2>Encabezado de nivel 2</H2>
<H3>Encabezado de nivel 3</H3>
<H4>Encabezado de nivel 4</H4>
<H5>Encabezado de nivel 5</H5>
<H6>Encabezado de nivel 6</H6>
Estructuras de control
Respuesta:
for (i=1;i<=6;i++) {
document.write("<H" + i + ">Encabezado de nivel " + i + "</H" + i + ">")
}
Estructuras de control
WHILE
while (condicin){
sentencias a ejecutar
}
Ejemplo.
var color = ""
while (color != "rojo")
color = dame un color //Cdigo no vlido, pide el ingreso de color
}
Estructuras de control
DO WHILE
do {
sentencias del bucle
} while (condicin)
Ejemplo.
var color
do {
color = dame un color
} while (color != "rojo")
Estructuras de control
Estructuras de control
Break
Detiene un ciclo. Detener un ciclo significa salir de l y dejarlo todo
como est para continuar con el flujo del programa inmediatamente
despus del bucle.
for (i=0;i<10;i++){
document.write (i)
escribe = dime si contino
if (escribe == "no")
break
}
Estructuras de control
Continue.
Sirve para volver al principio del bucle en cualquier momento, sin
ejecutar las lneas que haya por debajo de la palabra continue.
var i=0
while (i<7){
incrementar = dime si incremento
if (incrementar == "no")
continue
i++
}
Estructuras de control
Ejemplo
Un ejemplo ms prctico sobre estas instrucciones se puede ver a
continuacin. Se trata de un ciclo FOR planeado para llegar hasta
1.000 pero que lo vamos a parar con break cuando lleguemos a 333.
for (i=0;i<=1000;i++){
document.write(i + "<br>")
if (i==333)
break;
}
Estructuras de control
Estructuras de control
Salida:
0-0
0-1
0-2
0-3
0-4
0-5
0-6
0-7
0-8
0-9
1-0
1-1
1-2
1-3
1-4
1-5
1-6
1-7
1-8
1-9
2-0
2-1
2-2
2-3
2-4
2-5
2-6
2-7
2-8
2-9 . Hasta 9-9
Estructuras de control
Ejemplo.
Imprimir en la pgina las todas las tablas de multiplicar. Del 1 al 9, es
decir, la tabla del 1, la del 2, del 3...
for (i=1;i<10;i++){
document.write("<br><b>La tabla del " + i + ":</b><br>")
for (j=1;j<10;j++) {
document.write(i + " x " + j + ": ")
document.write(i*j)
document.write("<br>")
}
}
Funciones
Funciones
Funciones
Funciones
Funciones
<script>
miFuncion()
function miFuncion(){
//hago algo...
document.write("Esto va bien")
}
</script>
Este ejemplo funciona correctamente porque la funcin est
declarada en el mismo bloque que su llamada.
Funciones
Tambin es vlido que la funcin se encuentre en un bloque
<script> anterior al bloque donde est la llamada.
<html><head><title>mi pgina</title>
<script>
function miFuncion(){
//hago algo...
document.write("Esto va bien")
}
</script>
</head> <body>
<script>
miFuncion()
</script>
</body> </html>
Funciones
function escribirBienvenida(nombre){
document.write("<H1>Hola " + nombre + "</H1>")
}
Valores de retorno.
Valores de retorno.
Valores de retorno.
Valores de retorno.
Mltiples return.
En una misma funcin podemos colocar ms de un return.
Lgicamente slo vamos a poder retornar una cosa, pero
dependiendo de lo que haya sucedido en la funcin podr ser de un
tipo u otro, con unos datos u otros.
En el siguiente ejemplo, la funcin utiliza mltiples return. Se trata
de una funcin que devuelve un 0 si el parmetro recibido era par y
el valor del parmetro si este era impar.
Valores de retorno.
function multipleReturn(numero){
var resto = numero % 2;
if (resto == 0)
return 0;
else
return numero;
}
Arrays en Javascript.
Arrays multidimensionales.
Arrays multidimensionales.
Arrays multidimensionales.
Arrays multidimensionales.
Arrays multidimensionales.
Arrays multidimensionales.
Arrays multidimensionales.
Arrays multidimensionales.
document.write("<table width=200 border=1 cellpadding=1 cellspacing=1>");
for (i=0; i<temperaturas_cuidades.length; i++){
document.write("<tr>");
document.write("<td><b>Ciudad " + i + "</b></td>");
for (j=0; j<temperaturas_cuidades[i].length; j++){
document.write("<td>" + temperaturas_cuidades[i][j] + "</td>");
}
document.write("</tr>");
}
document.write("</table>");
Inicializacin de arrays.
Inicializacin de arrays.
Funciones de Javascript.
Funcin eval.
var miTexto = "3 + 5"
eval("document.write(" + miTexto +")")
La funcin eval nos queda:
document.write(3 + 5)
La funcin eval ejecuta la instruccin que se le pasa por parmetro,
as que ejecutar esta sentencia, lo que dar como resultado que se
escriba un 8 en la pgina web. Primero se resuelve la suma que hay
entre parntesis, con lo que obtenemos el 8 y luego se ejecuta la
instruccin de escribir en pantalla.
Funciones de Javascript.
Funcin parseInt.
Esta funcin recibe un nmero, escrito como una cadena de
caracteres, y un nmero que indica una base.
document.write (parseInt("34"))
Devuelve el numero 34
document.write (parseInt("101011",2))
Devuelve el numero 43
document.write (parseInt("34",8))
Devuelve el numero 28
Funciones de Javascript.
document.write (parseInt("3F",16))
Devuelve el numero 63
Esta funcin se utiliza en la prctica para un montn de cosas
distintas en el manejo con nmeros, por ejemplo obtener la parte
entera de un decimal.
document.write (parseInt("3.38"))
Devuelve el numero 3
Funciones de Javascript.
Funciones de Javascript.
Funciones de Javascript.
Funcin isNaN
Esta funcin devuelve un booleano dependiendo de si lo que recibe
es un nmero o no. Lo nico que puede recibir es un nmero o la
expresin NaN. Si recibe un NaN devuelve true y si recibe un
nmero devuelve false.
La funcin suele trabajar en combinacin con la funcin parseInt o
parseFloat, para saber si lo que devuelven estas dos funciones es
un nmero o no.
Funciones de Javascript.
miInteger = parseInt("A3.6")
isNaN(miInteger)
En la primera lnea asignamos a la variable miInteger el resultado
de intentar convertir a entero el texto A3.6. Como este texto no se
puede convertir a nmero la funcin parseInt devuelve NaN. La
segunda lnea comprueba si la variable anterior es NaN y como si lo
es devuelve un true.
Funciones de Javascript.
miFloat = parseFloat("4.7")
isNaN(miFloat)
En este ejemplo convertimos un texto a nmero con decimales. El
texto se convierte perfectamente porque corresponde con un
nmero. Al recibir un nmero la funcin isNaN devuelve un false.
Objetos.
Clase String
Propiedades de String
Length: guarda el nmero de caracteres del String.
Mtodos de String:
Los objetos de la clase String tienen una buena cantidad de
mtodos para realizar muchas cosas interesantes. Primero vamos a
ver una lista de los mtodos ms interesantes y luego vamos a ver
otra lista de mtodos menos tiles.
charAt(indice). Devuelve el carcter que hay en la posicin
indicada como ndice. Las posiciones de un string empiezan en 0.
Clase String
indexOf(carcter,desde)
Devuelve la posicin de la primera vez que aparece el carcter
indicado por parmetro en un String. Si no encuentra el carcter en
el String devuelve -1. El segundo parmetro es opcional y sirve para
indicar a partir de que posicin se desea que empiece la bsqueda.
lastIndexOf(carcter,desde)
Busca la posicin de un carcter exactamente igual a como lo hace
la funcin indexOf pero desde el final en lugar del principio. El
segundo parmetro indica el nmero de caracteres desde donde se
busca, igual que en indexOf.
Clase String
replace(substring_a_buscar,nuevoStr)
Sirve para reemplazar porciones del texto de un string por otro
texto, por ejemplo, podramos uilizarlo para reemplazar todas las
apariciones del substring "xxx" por "yyy". El mtodo no reemplaza
en el string, sino que devuelve un resultante de hacer ese
reemplazo. Acepta expresiones regulares como substring a buscar.
split(separador)
Sirve para crear un vector a partir de un String en el que cada
elemento es la parte del String que est separada por el separador
indicado por parmetro.
Clase String
substring(inicio,fin)
Devuelve el substring que empieza en el carcter de inicio y
termina en el carcter de fin. Si intercambiamos los parmetros de
inicio y fin tambin funciona. Simplemente nos da el substring que
hay entre el carcter menor y el mayor.
toLowerCase()
Pone todas los caracteres de un string en minsculas.
toUpperCase()
Pone todas los caracteres de un string en maysculas.
Clase String
toString()
Este mtodo lo tienen todos los objetos y se usa para convertirlos
en cadenas.
Clase String
Ejemplo 1.
Vamos a escribir el contenido de un String con un caracter
separador ("-") entre cada uno de los caracteres del string.
var miString = "Hola Amigos
var result = "
for (i=0; i<miString.length-1; i++) {
result += miString.charAt(i);
result += "-";
}
result += miString.charAt(miString.length - 1);
document.write(result);
Clase String
Ejemplo 2.
Script que rompe un string en dos mitades y las imprima por
pantalla. Las mitades sern iguales, siempre que el string tenga un
nmero de caracteres par. En caso de que el nmero de caracteres
sea impar no se podr hacer la mitad exacta, pero partiremos el
string lo ms aproximado a la mitad.
var miString = "0123456789;
var mitad1,mitad2;
posicion_mitad = miString.length / 2;
mitad1 = miString.substring(0,posicion_mitad);
mitad2 = miString.substring(posicion_mitad, miString.length);
document.write(mitad1 + "<br>" + mitad2);
Clase Date
Clase Date
Clase Date
Clase Date
Clase Date
getMinutes()
Devuelve los minutos.
getMonth()
Devuelve el mes (atencin al mes que empieza por 0).
getSeconds()
Devuelve los segundos.
getTime()
Devuelve los milisegundos transcurridos entre el da 1 de enero de
1970 y la fecha correspondiente al objeto al que se le pasa el
mensaje.
Clase Date
getYear()
Retorna el ao, al que se le ha restado 1900. Por ejemplo, para el
1995 retorna 95, para el 2005 retorna 105. Este mtodo est
obsoleto en Netscape a partir de la versin 1.3 de Javascript y ahora
se utiliza getFullYear().
getFullYear()
Retorna el ao con todos los dgitos. Usar este mtodo para estar
seguros de que funcionar todo bien en fechas posteriores al ao
2000.
Clase Date
setDate()
Actualiza el da del mes.
setHours()
Actualiza la hora.
setMinutes()
Cambia los minutos.
setMonth()
Cambia el mes (atencin al mes que empieza por 0).
Clase Date
setSeconds()
Cambia los segundos.
setTime()
Actualiza la fecha completa. Recibe un nmero de milisegundos
desde el 1 de enero de 1970.
setYear()
Cambia el ao recibe un nmero, al que le suma 1900 antes de
colocarlo como ao de la fecha. Por ejemplo, si recibe 95 colocar
el ao 1995. Este mtodo est obsoleto a partir de Javascript 1.3 en
Netscape. Ahora se utiliza setFullYear(), indicando el ao con todos
los dgitos.
Clase Date
setFullYear()
Cambia el ao de la fecha al nmero que recibe por parmetro. El
nmero se indica completo ej: 2005 o 1995. Utilizar este mtodo
para estar seguros que todo funciona para fechas posteriores a
2000.
Clase Date
Clase Date
Clase Date
//Escribimos en ao en la pgina
document.write("<br>El ao actual es: " + anoActual)
document.write("<br>El ao pasado es: " + anoPasado)
//cambiamos el ao en la fecha actual
miFechaActual.setFullYear(2005)
Clase Date
//extraemos el da mes y ao
dia = miFechaActual.getDate()
mes = parseInt(miFechaActual.getMonth()) + 1
ano = miFechaActual.getFullYear()
//escribimos la fecha en un formato legible
document.write ("<br>")
document.write (dia + "/" + mes + "/" + ano)
Clase Math
Clase Math
LN2
Logaritmo neperiano de 2.
LN10
Logaritmo neperiano de 10.
LOG2E
Logaritmo en base 2 de E.
LOG10E
Logaritmo en base 10 de E.
Clase Math
PI
Conocido nmero para clculo con crculos.
SQRT1_2
Raiz cuadrada de un medio.
SQRT2
Raiz cuadrada de 2.
Clase Math
Mtodos de Math.
As mismo, tenemos una serie de mtodos para realizar
operaciones matemticas tpicas, aunque un poco complejas. Todos
los que conozcan las matemticas a un buen nivel conocern el
significado de estas operaciones.
abs()
Devuelve el valor absoluto de un nmero. El valor despus de
quitarle el signo.
Clase Math
acos()
Devuelve el arcocoseno de un nmero en radianes.
asin()
Devuelve el arcoseno de un nmero en radianes.
atan()
Devuelve un arcotangente de un nmero.
Clase Math
ceil()
Devuelve el entero igual o inmediatamente siguiente de un
nmero. Por ejemplo, ceil(3) vale 3, ceil(3.4) es 4.
cos()
Retorna el coseno de un nmero.
exp()
Retorna el resultado de elevar el nmero E por un nmero.
Clase Math
floor()
Lo contrario de ceil(), devuelve un nmero igual o inmediatamente
inferior.
log()
Devuelve el logaritmo neperiano de un nmero.
max()
Retorna el mayor de 2 nmeros.
min()
Retorna el menor de 2 nmeros.
Clase Math
pow()
Recibe dos nmeros como parmetros y devuelve el primer
nmero elevado al segundo nmero.
random()
Devuelve un nmero aleatorio entre 0 y 1. Mtodo creado a partir
de Javascript 1.1.
round()
Redondea al entero ms prximo.
Clase Math
sin()
Devuelve el seno de un nmero con un ngulo en radianes.
sqrt()
Retorna la raz cuadrada de un nmero.
tan()
Calcula y devuelve la tangente de un nmero en radianes.
Clase Math
La clase AlumnoUniversitario.
En este ejemplo vamos a crear un objeto estudiante universitario.
Como estudiante tendr unas caractersticas como el nombre, la
edad y el nmero de matrcula. Adems podr tener algn mtodo
como por ejemplo matricular al alumno.
La clase AlumnoUniversitario.
La clase AlumnoUniversitario.
Para construir un mtodo debemos crear una funcin. Una funcin
que se construye con intencin de que sea un mtodo para una
clase, puede utilizar tambin la variable this, que hace referencia al
objeto sobre el que invocamos el mtodo.
function matricular(num_matricula){
this.numMatricula = num_matricula
}
La funcin matricular recibe un nmero de matrcula por
parmetro y lo asigna a la propiedad numMatricula del objeto que
recibe este mtodo. As rellenamos el la propiedad del objeto que
nos faltaba.
La clase AlumnoUniversitario.
Vamos a construir otro mtodo que imprime los datos del alumno.
function imprimir(){
document.write("Nombre: " + this.nombre)
document.write("<br>Edad: " + this.edad)
document.write("<br>Nmero de matrcula: " + this.numMatricula)
}
Esta funcin va imprimiendo todas las propiedades del objeto que
recibe el mtodo.
La clase AlumnoUniversitario.
Constructor: Para colocar un mtodo en una clase debemos asignar
la funcin que queremos que sea el mtodo al objeto que se est
creando. Veamos cmo quedara el constructor de la clase
AlumnoUniversitario con el mtodo matricular.
La clase AlumnoUniversitario.
La clase AlumnoUniversitario.
Invocando los mtodos de la clase:
//le pedimos que se imprima
miAlumno.imprimir()
Envo de formularios.