Intro A Javascript
Intro A Javascript
Intro A Javascript
JavaScript
(Manual)
1
Manual de JavaScript
Antes de empezar:
- Manual F.V.
Significa “manual práctico de informática”, pero realmente realmente PRÁCTICO.
- Todos los programas y ejercicios del manual han sido probados sin problema en el Microsoft
Internet Explorer 5.0
- Mi consejo, es que escribas de nuevo tal como te indico en el texto, cada uno de los programas
utilizando el Bloc de Notas del Windows. Sólo en el caso de que el programa no te funcione y
no descubras cuál es el error, cópialo a partir del Word en el Bloc de Notas y grábalo con otro
nombre; para poder compararlo con el tuyo y así descubrir el error.
Piensa que se aprende más descubriendo los propios errores, que avanzar sin hacer ningún error.
ÍNDICE
1. Introducción a la programación en JavaScript .................................................................................... 3
5. Programación en HTML..................................................................................................................... 95
2
Manual de JavaScript
1.- Introducción
- De todos los servicios que ofrece INTERNET, no cabe duda de que el más popular es la WWW
(World Wide Web).
La WWW no es más que millones de páginas en formato electrónico, con los contenidos y temáticas
más diversas a las que podemos acceder gracias a un ordenador + modem + browser (navegador).
- Una página WEB no es más que un fichero de texto (ASCII), escrito en formato HTML (Hyper Text
Markup Language = lenguaje etiquetado de hipertexto).
- El HTML es un lenguaje basado en pares de tags (etiquetas). Un tag es un código entre <>, si es de
apertura o un código entre </ > si es de cierre.
Los browsers (navegadores de Internet), son capaces de traducir estas etiquetas (tags) de forma que
presentan visualmente la página.
3
Manual de JavaScript
- Escribe:
<HTML>
<HEAD>
<TITLE>PROG000.HTM</TITLE>
</HEAD>
<BODY>
<P>Esto aparecerá en el navegador porque es un párrafo</P>
<P>Esto es otro párrafo</P>
<P>Observa lo que aparece en la línea de título</P>
<P>La línea de título es la frase que aparece en el marco
del navegador, línea superior</P>
<P>¿Está claro para qué sirven los tags P, /P?</P>
</BODY>
</HTML>
El navegador nos muestra la página HTML “visualmente”, para ver su código debes hacer:
Menú Ver
Código fuente
- La programación en HTML no tiene ninguna utilidad para un usuario normal, ya que en el mercado
existen herramientas que evitan la necesidad de tener que introducir manualmente los “tags”:
HotMetal, FontPage, Word, etc.
Lo que sí tienen sentido es el estudio de la programación en JavaScript.
- JavaScript es un lenguaje de programación creado por la empresa Netscape (creadora de uno de los
navegadores más conocido)
Es el lenguaje de programación más utilizado en Internet para añadir interactividad a las páginas
Web
- Un programa en JavaScript se integra en una página Web (entre el código HTML) y es el navegador
el que lo interpreta (ejecuta). Es decir el JavaScript es un lenguaje interpretado, no compilado (no
se genera ningún tipo de fichero objeto o exe).
- Para programar en JavaScript sólo necesitamos un editor de texto (utilizaremos el Bloc de Notas del
Windows) y un navegador (utilizaremos el Microsoft Internet Explorer) para ejecutarlo.
4
Manual de JavaScript
<HTML>
<HEAD>
<TITLE>PROG001.HTM</TITLE>
<SCRIPT LANGUAGE="JavaScript">
alert("¡Hola Mundo!");
</SCRIPT>
</HEAD>
<BODY>
<P>
Programa 1 en JavaScript
</P>
</BODY>
</HTML>
5
Manual de JavaScript
<HTML>
<SCRIPT LANGUAGE="JavaScript">
// PROG002.HTM
var nom;
nom=prompt("Escribe tu nombre ","Paco");
alert("Mucho gusto "+ nom);
</SCRIPT>
</HTML>
En definitiva:
- La función prompt nos permite introducir "valores", dichos valores se han de guardar en variables,
que previamente hemos de declarar con la palabra reservada "var"
- La función "alert" muestra mensajes y/o valores de variables.
<HTML>
<SCRIPT LANGUAGE="JavaScript">
// PROG003.HTM
/*Programa que sirve para calcular
el área de un rectángulo */
6
Manual de JavaScript
var base,altura;
base=prompt("Escribe la base del Rectángulo","");
altura=prompt("Escribe la altura del Rectángulo","");
alert("El área del Rectángulo es = "+(base*altura));
</SCRIPT>
</HTML>
- Ejecútalo varias veces. Sería conveniente utilizar números enteros y también decimales (5.72, 0.531:
observa que has de utilizar el punto decimal inglés).
- Si has ejecutado el programa una vez, para volverlo a ejecutar, no es necesario que "cierres" el
navegador, basta que hagas:
Menú Ver
Actualizar
o si quieres ir más rápido, pulsa la tecla [F5]
3.- Variables
- Declaración de variables
Una variable se puede declarar en JavaScript, de dos formas:
Forma Explícita: var nombre Variable;
Forma Implícita: var nombre Variable= valor;
En el último caso no es imprescindible escribir var, pero es conveniente, ya que de esta forma
localizamos rápidamente todas las variables del programa.
<HTML>
<SCRIPT LANGUAGE=''JavaScript''>
7
Manual de JavaScript
// PROG004.HTM
/* Programa que utiliza una variable explícita
y dos implícitas */
var Expli;
var pi=3.141592;
var radio=7;
Expli=pi*radio*radio;
alert("Área del Círculo = "+Expli);
</SCRIPT>
</HTML>
- Ejecútalo
// PROG005.HTM
var Pepe;
var PEPE="Hola que tal ";
var pepE=75.47;
var pEpe=" ¿Como estás?";
Pepe=PEPE+pEpe;
alert("PEPE="+PEPE);
alert("PEPE es "+typeof(PEPE));
alert("pepE="+pepE);
alert("pepE es "+typeof(pepE));
alert("pEpe="+pEpe);
alert("pEpe es "+typeof(pEpe));
alert("Pepe="+Pepe);
alert("Pepe es "+typeof(Pepe));
</SCRIPT>
</HTML>
8
Manual de JavaScript
// PROG006.HTM
var num;
alert("Hola que tal");
alert("Hola \nque tal");
alert("Hola\t"+"que"+"\n"+"tal");
alert("Hola\n que\n t\nal");
num=prompt("Escribe un número: ","");
alert("El \ndoble\n es: \n"+(num*2));
</SCRIPT>
</HTML>
9
Manual de JavaScript
Ejemplo:
FF32 en base 16 es 2 + 3*16 + 15*162 + 15*163 = 65330 en sistema decimal
Es decir: 0xFF32 (número en base 16, según notación de JavaScript) = FF32 16 = 6533010
<HTML>
<SCRIPT LANGUAGE=''JavaScript''>
// PROG007.HTM
</SCRIPT>
</HTML>
En el programa anterior aparecen 3 “alerts”, uno para cada uno de los tres números. No hay ningún
problema para incluir los tres “alerts” en uno solo....
<HTML>
<SCRIPT LANGUAGE=''JavaScript''>
// PROG007b.HTM
</SCRIPT>
</HTML>
10
Manual de JavaScript
- Escribe:
<HTML>
<SCRIPT LANGUAGE="JavaScript">
// Prog007bb.htm
var x,y,z;
salida="";
var x1="Pepito Grillo", y1="Paquita González";
var num1=37, num2=3.752;
x=prompt("Escribe tu nombre:","");
y=prompt("Escribe tu primer apellido:","");
z=prompt("Escribe tu segundo apellido:","");
salida=salida+"Ahora un alert largo ";
salida=salida+x+y+z;
salida=salida+x1+" "+y1;
salida=salida+num1+" "+num2;
salida=salida+" ,ya me he cansado";
alert(salida);
</SCRIPT>
</HTML>
- Observa de qué forma acumulamos muchos datos en un solo “alert” (ésta será la forma de proceder,
cuando necesitemos una “salida” con muchos valores):
definimos una variable “vacía”: var salida=‖‖;
acumulamos a la variable salida todo lo que queramos: salida=salida+ lo que sea
“lo que sea” puede ser una cadena (un texto) o una variable (sea numérica o de texto).
salida=salida + x1 + “ “ + y1;
salida=salida + “ya me he cansado”;
Para acabar, un solo “alert”: alert(salida);
Variables nulas
Cuando una variable no contiene ningún valor, su contenido es nulo
Ejemplo: miVariable = "Hola";
miVariable= null; // la vaciamos para que no ocupe memoria.
11
Manual de JavaScript
<HTML>
<SCRIPT LANGUAGE="JavaScript">
// PROG008.HTM
var var1="Pepe";
var var2="Paquito";
var var3=5/0;
alert("Pepe es "+var1);
alert("Paquito + 2 es ="+(var2+2));
alert("5/0 es ="+var3);
</SCRIPT>
</HTML>
7.- Contadores
Uno de los instrumentos más utilizados en todo lenguaje de programación es el llamado contador
Observa:
var x= 10;
x = x+1;
x = x-5;
Declaramos una variable "x", que es numérica y que inicialmente es 10.
La línea "x = x+1" es un contador, que hemos de leer: El nuevo valor de "x" es igual al anterior valor
de "x" más una unidad. Es decir, que en estos momentos nuestra variable "x" es igual a 11.
La siguiente línea: "x = x-5" es otro contador que hemos de leer: el nuevo valor de "x" es igual al
anterior valor de "x" menos 5 unidades. Es decir, que el valor de la variable "x" es ahora 11 - 5 = 6
- Haz un programa para comprobar lo que hemos dicho sobre los contadores, es decir:
<HTML>
<SCRIPT LANGUAGE="JavaScript">
// PROG009.HTM
var x=10;
alert("El valor inicial de x es "+x);
x=x+1;
alert("Después de x=x+1, x="+x);
x=x-5;
alert("Después de x=x-5, x="+x);
</SCRIPT>
</HTML>
12
Manual de JavaScript
<HTML>
<SCRIPT LANGUAGE="JavaScript">
// PROG010.HTM
var num1="30";
var num2="15";
alert("30+15= "+(num1+num2));
alert("30*15= "+(num1*num2));
</SCRIPT>
</HTML>
- Ejecútalo.
- ¿Qué sucede si introducimos dos números a través de la función prompt?. Vamos a verlo:
<HTML>
<SCRIPT LANGUAGE="JavaScript">
//PROG011.HTM
var num1,num2;
num1=prompt("Escribe un número","");
num2=prompt("Escribe otro número","");
alert("La suma es ="+(num1+num2));
</SCRIPT>
</HTML>
13
Manual de JavaScript
- Ejecútalo. No funciona como deseamos debido a que el resultado de un prompt, siempre es una
cadena de texto.
parseFloat(cadena)
Toma la "cadena" y la transforma en un número en coma flotante, si es posible.
parseFloat ("123.456") = 123.456
parseFloat ("123ABC") = 123
parseFloat ("ABC") = NaN
parseInt(cadena, número)
Devuelve números enteros, el segundo argumento nos permite escoger la base de numeración
(entre 2 y 36)
parseInt ("ABC",16) = 2748 ABC16 = 274810
Si no especificamos el segundo argumento, por defecto es 10.
Si la cadena empieza por 0x y no existe el segundo argumento, se entiende que es 16.
Si la cadena empieza por 0 y no existe el segundo argumento, se entiende que es 8
toString(argumento)
Si argumento = número
Devuelve una cadena que contiene el número
Puede haber un argumento opcional:
(13).toString(16) =”d” siendo 1310 = d16
(13).toString(2) = “1101” siendo 1310 = 11012
<HTML>
<SCRIPT LANGUAGE="JavaScript">
//PROG012.HTM
var num1,num2;
num1=prompt("Escribe un número","");
num1=parseFloat(num1);
num2=prompt("Escribe otro número","");
num2=parseFloat(num2);
alert("La suma es ="+(num1+num2));
</SCRIPT>
</HTML>
A partir de este momento hemos de tener claro si los “prompts” corresponden a números enteros,
decimales o de texto:
14
Manual de JavaScript
<HTML>
<SCRIPT LANGUAGE="JavaScript">
// Prog012b.htm
var x,y;
x=parseInt(prompt("Escribe un entero ",""));
y=parseInt(prompt("Escribe otro entero ",""));
alert("La suma de "+ x +" + " + y +" es =" + (x+y) +"\n"+
"El producto de "+ x +" y "+ y +" = "+(x*y)+"\n"+
"El promedio de "+ x +" y "+ y +" es "+ (x+y)/2);
</SCRIPT>
</HTML>
En el ejercicio Prog007.htm habíamos visto una forma de convertir un número en base 8 o base 16 en
base 10. Pero dichos números debíamos de escribirlos implícitamente, es decir en el programa. Nos
gustaría hacer un programa que:
- Nos preguntara un número en base 16 (prompt)
- Nos diera como resultado el número anterior pero en base 10
- Escribe:
<HTML>
<SCRIPT LANGUAGE="JavaScript">
// Prog012bb.htm
var m,n,x;
m=prompt("Escribe un número en base 16","");
n=parseInt(m,16);
- Grábalo con el nombre Prog012bb.htm en TuCarpeta y ejecútalo para el número “FF32”, a ver si es
verdad que nos da “65330” como resultado.
15
Manual de JavaScript
n =parseInt(m,16)
La variable “n” guardará el número en base 10
Es decir: parseInt(cadena, 16), transforma la “cadena”, en nuestro ejemplo un número escrito
en base 16, en el correspondiente número (no cadena) pero en base decimal.
- Escribe:
<HTML>
<SCRIPT LANGUAGE="JavaScript">
// Prog012bbb.htm
var m7,n7;
var m4,n4;
var m6,n6;
m7=prompt("Escribe un número en base 7","");
n7=parseInt(m7,7);
m4=prompt("Escribe un número en base 4","");
n4=parseInt(m4,4);
m6=prompt("Escribe un número en base 6","");
n6=parseInt(m6,6);
</SCRIPT>
</HTML>
- Grábalo con el nombre Prog012bbb.htm y ejecútalo, probándolo con los números anteriores.
Veamos el problema inverso: dado un número en base 10, nos interesa convertirlo a base 7, por ejemplo.
Matemáticamente:
16
Manual de JavaScript
<HTML>
<SCRIPT LANGUAGE="JavaScript">
// Prog012bbbb.htm
var m,n;
n=parseInt(prompt("Escribe un número entero en base 10",""));
m=(n).toString(7);
alert("El número "+n+" en base 10, es igual a "+m+" en base 7");
</SCRIPT>
</HTML>
17
Manual de JavaScript
Autoevaluación I
1) Haz un programa de nombre Eval1A.htm, que has de grabar en TuCarpeta que sirva para restar dos
números cualesquiera, sean enteros o reales. ¿Qué sucede si en lugar de restar dos números,
intentamos restar dos textos?.
Haz un programa de nombre Eval1Ab.htm, que demuestre el único caso en que podemos restar dos
cadenas de texto.
2) Haz un programa de nombre Eval1B.htm, que has de grabar en TuCarpeta, que sirva para dividir
dos números.
¿Qué sucede si en lugar de dividir dos números, intentamos dividir dos textos?
¿Qué sucede si el divisor es el número 0?
3) Haz un programa de nombre Eval1C.htm, que has de grabar en TuCarpeta, que funcione de la
siguiente forma:
- El programa nos pregunta nuestro nombre.
- El programa nos pregunta nuestra edad.
- El programa da como resultado nuestro nombre y a continuación los días que hemos vivido hasta el
momento (deberás multiplicar la edad por 365).
4) Haz un programa de nombre Eval1D.htm, que has de grabar en TuCarpeta, que funcione de la
siguiente forma:
- El programa nos pide un número.
- El programa nos muestra en una única pantalla (un único “alert”), el doble, el triple y cuadrúple del
número que habíamos introducido.
5) El siguiente programa tiene errores. Escríbelo (grábalo con el nombre Eval1E.htm en TuCarpeta) y
corrígelo para que funcione y explica para qué sirve:
<HTML>
<SCRIPT LANGUAGE="JavaScrip">
/* EVAL1E.HTM
var a,b;
a=prompt("Escribe la base:")
b=promp("Escribe la altura:")
alert("Área= "+(a*b/2);
</SCRIP>
</HTML>
6) Haz un programa de nombre Eval1F.htm, que has de grabar en TuCarpeta, que sirva para calcular la
longitud de una circunferencia y el área del círculo correspondiente.
7) Haz un programa de nombre Eval1G.htm, que has de grabar en TuCarpeta, que sirva para calcular
un determinante de 2º orden.
8) Haz un programa de nombre Eval1H.htm, que has de grabar en TuCarpeta, igual que el Eval1G,
pero que presente los 4 elementos del determinante tabulados en 2 filas y 2 columnas.
18
Manual de JavaScript
9) Haz un programa de nombre Eval1I.htm, que has de grabar en TuCarpeta, que funcione de la
siguiente forma:
- El programa nos pide nuestro nombre.
- El programa nos pide nuestro primer apellido.
- El programa nos pide en qué población vivimos.
- El programa presenta una pantalla aproximadamente igual a la siguiente:
==================================
Hola nombre Apellido
Adiós habitante de Población
==================================
10) Haz un programa de nombre Eval1J.htm, que has de grabar en TuCarpeta, que funcione de la
siguiente forma:
- El programa nos pide un número.
- Utiliza tres contadores:
Un contador: suma 5
Otro contador: suma 21
Otro contador: resta 4
- El programa nos presenta los 4 números de la siguiente forma:
La primera línea: el número introducido.
La segunda línea: los tres números tabulados, que han resultado de los tres contadores.
De forma que si introducimos el nº 5 debería aparecer:
11) Haz un programa de nombre Eval1K.htm, que has de grabar en TuCarpeta, que funcione de la
siguiente forma:
- El programa nos pide un número entero.
- El programa nos da como resultado el mismo número pero en base 16
- Y por último nos lo escribe en base 5
Comprueba el programa para el número 52. Deberás calcular en primer lugar matemáticamente el valor
de 52 en base 16 y en base 5.
12) Haz un programa de nombre Eval1L.htm, que has de grabar en TuCarpeta, que funcione de la
siguiente forma:
- El programa nos pide un número en base ocho
- El programa nos lo escribe en base decimal.
- Y por último en base 2.
Comprueba el programa para el número 6561 8. Deberás resolver en primer lugar el problema
matemáticamente.
13) Haz un programa de nombre Eval1M.htm que has de grabar en TuCarpeta, que funcione de la
siguiente forma:
- El programa nos pide un número entero.
- El programa nos pide la base
- El programa nos escribe el número introducido en la "base" deseada.
19
Manual de JavaScript
Comprueba el programa para el número 100, en base 2, 3 y 11. Deberás resolver en primer lugar el
problema matemáticamente.
16) Escribe un fichero HTML (que no sea un programa JavaScript), que presente la frase: "Hola que tal"
y debajo tu nombre y apellidos.
24) ¿Cómo se llaman y cómo funcionan las dos formas de definir una variable en JavaScript?
28) ¿Qué es el carácter de escape? ¿Qué es un caráter de control?. Escribe dos caracteres de control e
indica para qué sirven.
20
Manual de JavaScript
</HTML>
Grábalo con el nombre Eval1N.htm en TuCarpeta.
30) Calcula el número 9AC1 que está en base 16 a base 10, matemáticamente
31) Calcula el número 7640 que está en base 8 a base 10, matemáticamente.
32) Utiliza programas ya hechos para comprobar los dos ejercicios anteriores.
36) Haz un programa de nombre Eval1o.htm, que sirva para calcular el producto escalar de dos vectores
del plano.
La “salida” ha de ser de la siguiente forma:
37) Haz un programa de nombre Evalip.htm, que sirva para calcular el coseno del ángulo que forman
dos vectores del plano, sabiendo que Math.sqrt(x) calcula la raíz cuadrada de “x”.
21
Manual de JavaScript
22
Manual de JavaScript
<HTML>
<SCRIPT LANGUAGE="JavaScript">
// PROG013.HTM
var num;
num=parseFloat(prompt("Escribe un número",""));
if(num==100)
{
alert("El número que has escrito es 100");
}
else
{
alert("El número que has escrito no es 100");
}
if(num>0)
{
alert("El número que has escrito es positivo");
}
else
{
alert("El número es negativo o 0");
}
</SCRIPT>
</HTML>
- Ejecútalo.
23
Manual de JavaScript
Significado:
Si se cumple la condición, se ejecutan las sentencias 1, 2 y 3 y si no se cumple se ejecutan las sentencias
4, 5, 6. La opción “else” es opcional.
<HTML>
<SCRIPT LANGUAGE="JavaScript">
// PROG014.HTM
var a,b;
a=parseFloat(prompt("Escribe el primer número",""));
b=parseFloat(prompt("Escribe el segundo número",""));
if(a==b) alert("Los dos números son iguales");
if(a != b) alert("Los dos números son distintos");
if(a>b)
{
alert("El primer número es mayor que el segundo");
}
else
{
alert("El primer número no es mayor que el segundo");
}
if((a>b) && (100>a))
{
alert("El primero es mayor que el segundo");
alert("Además los dos son menores de 100");
}
else
{
alert("El primero no es mayor que el segundo");
alert("O uno de los dos números es mayor o igual a 100");
}
</SCRIPT>
</HTML>
- Ejecuta el programa para los siguientes casos, observando detenidamente lo que aparece:
1) a=70, b=2
2) a=50, b=30
3) a=7, b=11
4) a=100, b=50
5) a=50, b=100
- Observa:
a==b “a” es igual a “b”
a != b “a” es diferente a “b”
(a>b) && (100>a)
“a” es mayor que “b” y además “100 es mayor que –a-“
El else correspondiente a la condición anterior, sería equivalente a no(a>b) || no(100>a), es decir
la negación de la primera condición o la negación de la segunda (o las dos negaciones a la vez).
24