Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MANUAL
programación en
páginas web
© Edita: EDITORIAL CEP S.L. Edición: febrero 2015
C/ Dalia nº 20. Polígono El Lomo
Depósito Legal: M-4510-2015
28970 Humanes de Madrid (Madrid)
Cualquier forma de reproducción, distribución,
Tlf. 91 609 4176 comunicación pública o transformación de
esta obra sólo puede ser realizada con la
autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO
(Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o
escanear algún fragmento de esta obra.
Imprime: PUBLICEP
CARLOS OLLERO SÁNCHEZ
AUTOR
Ha realizado estudios de Ciencias Físicas e Informática, desarrollando
su labor profesional en diversas empresas de desarrollo informático y
consultoría.
TEMA 1. Metodología
de la programación
TEMA 2. Lenguaje de
guion
TEMA 3. Elementos
básicos del lenguaje de
guion
TEMA 4. Desarrollo de
scripts
TEMA 5. Gestión de
objetos del lenguaje de
guion
TEMA 7. Búsqueda y
análisis de scripts
Carlos Ollero Sánchez
Metodología de la
programación 1
• Lógica de programación
1. LÓGICA DE PROGRAMACIÓN
• Ordinogramas
Entendemos por programación al proceso por el cual se escribe en un
lenguaje la solución a un problema resultando de ello lo que se conoce • Pseudocódigos
como software. Para poder llevar a cabo dichos programas se emplea • Objetos
la lógica de programación, que incluye estructuras de decisión, de
repetición o de asignación. • Ejemplos de códigos en
diferentes lenguajes
Antes de empezar con cualquier lenguaje de programación es
necesario conocer las estructuras de decisión, repetición y asignación, OBJETIVOS:
y cómo utilizarlas.
- Aprender los fundamentos de
la programación
El proceso de traducción de cualquier problema en un programa debe
seguir los siguientes pasos: - Aprender a plantear y
resolver problemas usan do
1. Análisis del problema. técnicas de programación
2. Diseño de él o los algoritmos. - Conocer el uso de
pseudocódigo
3. Codificación del programa.
- Conocer distintos tipos de
4. Compilación.
lenguajes de programación
5. Prueba/depuración de errores.
6. Documentación.
11
documento en el que se reflejan todas y cada una de las características
que deberá tener la aplicación. Este documento recibe el nombre de
Análisis Funcional.
Una vez que conocemos qué es lo que queremos hacer hay que traducirlo
en forma de algoritmos o seudocódigo, planteando cómo vamos a hacerlo.
Esta es la fase de diseño, que debe llevarse a cabo utilizando lo que
conoce como ordinogramas o diagramas de flujo. Se trata de una forma de
representar cómo evoluciona el programa y los datos que pueden entrar o
salir de él, especificando si están involucrados ficheros o bases de datos.
Por último pero muy importante, sobre todo si el proyecto tiene cierta
entidad, tendremos que realizar una fase de documentación en la que
contaremos, más o menos explícitamente qué hace nuestro programa y
cómo lo hace. No debe sorprendernos este punto ya que podemos decir
sin temor a exagerar que del orden del 80% del trabajo de desarrollo de
aplicaciones se lleva a cabo en tareas de mantenimiento de aplicaciones
ya hechas, por lo cual, el proceso de documentación es vital para evitar
perder tiempos innecesarios.
AND
1 1 1
1 0 0
0 1 0
0 0 0
NOT (!)
Operando 1 Resultado
1 0
0 1
NAND
1 1 0
1 0 1
0 1 1
0 0 1
NOR
1 1 0
1 0 0
0 1 0
0 0 1
1 1 0
1 0 1
0 1 1
0 0 0
Por último nos queda el cuerpo del programa, en esta parte es donde
irá el contenido propiamente dicho del programa.
2. ORDINOGRAMAS
- Inicio.
- Procesamiento.
- Fin.
IF (condición)
…...
ELSE
…...
Vemos que tiene un principio y un final, era una de las reglas de las
que ya hemos hablado. A continuación se recogen los datos, se leen
del teclado pasando seguidamente a la verificación por medio de una
El uso de pseudocódigo
estructura de decisión. Si esta estructura es simple solo podemos
es equivalente al uso de
averiguar si un número es menor o igual que el otro, por lo que se hace
ordinogramas, no siendo una primera comprobación para saber si son iguales. Aquí el programa
uno mejor que otro a se bifurca, siguiendo hacia el final en un caso o hacia otra estructura
priori, tan solo dependerá de decisión en la que determinamos ahora si uno es menor que el otro.
de las preferencias o Por último se informa del resultado y se termina.
del problema concreto
para utilizar uno u otro.
Además, lo habitual
es que puedan ser
intercambiables y que
3. PSEUDOCÓDIGOS
un mismo problema El pseudocódigo es otra de las maneras de traducir problemas para
pueda ser escrito como luego resolverlos con un lenguaje de programación. Podemos decir
pseudocódigo y como que el pseudocódigo es un lenguaje entre el natural que utilizamos
ordinograma. habitualmente y el mucho más estricto utilizado para programar. A
PROGRAMA PrimerEjemplo
VARIABLES
INICIO
Leer num1
Leer num2
suma=num1 + num2
MUESTRA suma
FIN
SI
SI_NO
FIN_SI
SI var1=”valor1”
O SI var1=”valor2”
O SI var1=”valor3”
EN OTRO CASO
FIN_SI_Multiple
HACER
FIN_PARA
MIENTRAS variable=”valor_control”
HACER
..
FIN_MIENTRAS
VARIABLES
Caracter operacion
Entero resultado
INICIO
Leer num1
Leer num2
Leer operacion
SI operacion = “+”
O SI operacion = “-”
O SI operacion = “*”
O SI operacion = “/”
EN OTRO CASO
FIN_SI_Multiple
MUESTRA resultado
FIN
VARIABLES
INICIO
cuenta=0
suma = 0
Leer num
HACER
cuenta = cuenta + 1
FIN-MIENTRAS
FIN
print jugador1.peso;
jugador1.altura=”206”;
Para crear una clase suele ser suficiente con una declaración del tipo:
altura =””;
peso=””;
habilidad=””;
energía=””;
estadoAnimo=””;
bote(){
...
jugador1.energia = “10”;
jugador1.altura=”198”;
jugador1.bote(8,30);
PROGRAM muestra1-10;
USES CRT;
VAR num:INTEGER;
BEGIN
num:=0;
ClrScr;
BEGIN
WRITELN (num);
num:=num+1;
END;
END.
USES CRT;
BEGIN
ClrScr;
REPEAT
WRITELN (tabla);
x:= x + 1;
tabla:= num * x;
UNTIL x=11;
END.
#include <stdio.h>
#include <stdlib.h>
return(num1 + num2)/2;
void main()
int x, y;
int resp;
x = 4;
y = 10;
resultado = media(x,y);
exit(0);
$mensaje=$datosInci;echo(“mensaje: “.$mensaje.”<br>”);
$headers=”MIME-Version: 1.0 “;
$headers.=”Content-type: text/html “;
$headers.=”From:carlosollero@libro.com “;echo(“headers:
“.$headers.”<br>”);
$correo=”carlosollero@gmail.com”;echo(“correo:
“.$correo.”<br>”);
mail($correo,$fecha,$mensaje,$headers);
?>
<script language=’javascript’>
function calcula()
document.ff.iva.value = iva
</script>
Este pequeño script calcula el IVA dado un valor a través de una caja
de texto de formulario. Se puede ver como JavaScript utiliza métodos
y propiedades de objetos, que derivan de uno principal: document. A
continuación tenemos ff que es el nombre dado al formulario y dentro
de él hace alusión a la caja de texto precio. Se puede observar cómo se
hace referencia a distintos objetos que forman parte unos de otros.
/* Apellido */
/* Edad */
/* Sueldo */
boolean extra=false;
if (edad>40){
sueldo+=horasExtras;
extra=true;
return extra;
/* Constructor de un objeto */
this.nombre=nombre;
this.apellido=apellido;
this.edad=edad;
this.salario=sueldo;
Lenguaje
de guión 2
• Características del
1. CARACTERÍSTICAS DEL LENGUAJE lenguaje
Dentro de los lenguajes de programación tenemos dos grandes tipos • Relación del lenguaje de
que se distinguen por el modo en el que son ejecutados los programas. guion y el lenguaje de
El primer tipo es aquel en el que el código tiene que haber sido marcas
compilado. Por compilación entendemos el proceso mediante el cual el
código en formato texto de un lenguaje de alto nivel es transformado • Sintaxis del lenguaje de
en código máquina que entiende el sistema operativo. El programa es guion
validado por completo antes de ser compilado, de esta manera si se • Tipos de scripts:
encuentra algún error de sintaxis se genera un error y se interrumpe el inmediatos, diferidos e
proceso. híbridos
Por otro lado un lenguaje de script es aquel en el que el código es • Ejecución de un script
ejecutado línea a línea por el intérprete del lenguaje sin necesidad de
que el código sea enlazado (linkado) ni compilado. De este modo si hay
algún error éste no se detecta hasta que no se ejecuta la línea que falla. OBJETIVOS:
Ejemplos de este tipo de lenguajes son principalmente aquellos que se
utilizan para Internet como JavaScript, PHP o Python. Pero no solo los - Aprender qué es y cómo se
utilizados para desarrollo web, sino que otros lenguajes como PL-SQL programa en un lenguaje de
(para atacar bases de datos Oracle) son también interpretados o de guion
script.
- Conocer la sintaxis básica
Muchos de los lenguajes más conocidos son de este tipo como por - Distinguir entre los distintos
ejemplo C, Pascal, Java (aunque este último con ciertos matices). tipos de scripts
- Evalúa su corrección.
35
- Lee la siguiente instrucción (línea).
- Continúa por el paso 2 hasta que termina con todas las líneas.
<html>
<head>
<script>
function verPosicion()
{
alert(document.getElementById(“capa1”).style.
left );
alert(document.getElementById(“capa1”).style.
top);
}
</script>
</head>
<body>
</body>
</html>
verPosicion()
alert(document.getElementById(“capa1”).style.left );
Respecto a type, sabemos que las opciones que se pueden elegir son
tipos MIME y entre ellas indicamos al navegador que lo que sigue tiene
sintaxis Javascript.
Existe una tercera forma de incluir código Javascript dentro del HTML y
es directamente en ciertas etiquetas de la siguiente manera:
</script>
Ejemplos:
A. Variables
Por variable entendemos el elemento en el cual podemos guardar un
valor (en la memoria del ordenador) con el objeto de poder recuperarlo
posteriormente y utilizarlo. Un ejemplo sencillo podría ser la suma de
dos números. Imaginemos que queremos hacer un programa para pedir
al usuario dos números y responder con su suma. Podría ser algo así:
1. Escriba un número.
var miVariable;
miVariable1
_nombreGuardar
Direccion
1variable
nombre+
numero de telefono
<a name=”seccion1”>
<html>
<head>
<SCRIPT>
var miVariableGlobal
</SCRIPT>
<head>
<!DOCTYPE html>
<html>
<head>
<meta charset=”utf-8” />
<title>Variables en Javascript</title>
<script type=”text/javascript”>
var miVariableGlobal=”hola”;
function prueba() {
alert(miVariableGlobal);
var miVariableLocal=”variable de prueba”;
}
function prueba2() {
var miVariableLocal=”variable de prueba2”;
alert(“La variable que se muestra es:
“+miVariableLocal);
</head>
<body>
<form>
<input type=”button” value=”botón1”
onclick=”prueba()”>Si me pulsas podrás ver el valor de una
variable global declarada fuera de cualquier función</
input></br>
<input type=”button” value=”botón2”
onclick=”prueba2()”>Si me pulsas podrás ver el valor de una
variable local, hemos declarado dos variables con el mismo
nombre
una en la función prueba y otra en la función
prueba2, como son locales el valor que se mostrará será el de
la función prueba2.</input>
</form>
</body>
</html>
B. Operaciones
Para realizar operaciones con Javascript se utilizan lo que se conoce
como operadores matemáticos. Los operadores básicos son la suma,
+, resta, -, multiplicación, + y división, /. Deberemos tener cuidado de
utilizar con estos operadores variables cuyo contenido sea numérico.
var num2=4;
var resultado;
var num1=8;
var num2=4;
var resultado;
C. Comparaciones
Algo básico en cualquier lenguaje de programación son las
operaciones de comparación las cuales permiten dilucidar si dos
condiciones cumplen una premisa o no, si un número es mayor
que otro, si dos variables de texto contienen la misma cadena de
caracteres, etc.
- Idéntico: ===.
- Distinto: !=.
- No idéntico: !===.
var num1=4;
var num2=”4”;
var resulIgual;
var resulIdentico;
var num2=4;
var resultado;
D. Asignaciones
Por asignación entendemos la transferencia de un valor hacia una
variable. Debemos tener muy presente que no es lo mismo que
comparar dos valores, ya que el tratamiento de ambas operaciones es
distinto y lleva a menudo a errores difíciles de detectar.
nombreUsuario = “Antonio”;
var num1 = 2;
num1 += 4;
var num2 = 1;
num2 -= 2;
var num3 = 5;
num3 *= 3;
var num4 = 8;
num4 /= 4;
var num5 = 3;
num5 %= 2;
A. Métodos
Como ya hemos indicado Javascript es un lenguaje orientado a objetos
que tendrá asociados lo que llamaremos métodos. Entendemos que
método es una rutina o subrutina que realiza una operación a través
de la cual se podrán manipular y cambiar los datos privados de este.
Además un método siempre irá unido a un objeto.
objeto.metodo();
document.getElementById(“capa1”).style.left
B. Eventos
Por evento entendemos una acción que desencadena la ejecución
de una porción de código. Es lo que hace de Javascript el
complemento ideal para HTML, que es estático y por medio de
los eventos conseguimos cambiar aspectos de nuestra página web
en tiempo de ejecución, dotándola de propiedades dinámicas.
Ejemplos sencillos pueden ser hacer click sobre algún elemento o
pasar el ratón sobre un elemento de menú. Más adelante veremos
detalladamente el uso de los eventos. Ahora bastará con hacer una
relación de ellos y su definición clasificados por el dispositivo que lo
desencadena:
b. Eventos de documento
- onload: se ejecuta cuando la página se ha cargado.
c. Eventos de formularios
Se aplican sobre los elementos de formulario.
d. Eventos de teclado
- onkeydown: se ejecuta cuando se pulsa una tecla y se mantiene
pulsada.
C. Atributos
Atributos o propiedades son aquellos datos que definen el estado de
un objeto. Si partimos de un objeto Javascript podremos modificarlo
cambiando sus atributos. Es, junto con los métodos, una de las
características de un objeto en un lenguaje orientado a objetos.
D. Funciones
Una función se diferencia de un método en que este está vinculado
siempre a un objeto, mientras una función tiene un carácter
independiente. Podemos definir una función para múltiples propósitos,
por ejemplo recoger el código que se deberá ejecutar cuando se
desencadene un evento, o bien puedo necesitar tener creada una
función genérica que pueda ser llamada desde otras funciones.
function miFuncion()
Hay que destacar que los paréntesis siempre deben estar aunque no
contengan nada. Igualmente todo el código deberá estar entre las dos
llaves. Ejemplos de funciones pueden ser una que calcule la letra del
NIF o que averigüe si un número es par o impar.
miObjeto.metodo() = function () { };
Un tercer caso son los híbridos: estos son aquellos que están
a medio camino entre los dos tipos anteriores o que tengan
características de ambos. Un ejemplo puede ser cuando se utiliza el
evento onload, este se dispara justo después de que se cargan todos
los elementos de la página, por lo que por un lado es diferido, en
cuanto a que se controla el momento en el que se ejecuta el código
pero al mismo tiempo se ejecuta durante la misma acción que los
inmediatos.
5. EJECUCIÓN DE UN SCRIPT
En esta sección vamos a recordar las diversas formas de ejecutar
un script que podemos utilizar. En función del caso concreto será
más conveniente utilizar una u otra, teniendo siempre en cuenta
que comentar la funcionalidad del código siguiente siempre será
recomendable.
<body onload=”cargaInicio()”>
</body>
</html>
<html>
<head>
<title>Ejecución al inicio</title>
function ejecutaClick()
</script>
</head>
<body>
<form>
</form>
</body>
</html>
Elementos básicos
del lenguaje 3
de guion
• Variables e
1. VARIABLES E IDENTIFICADORES identificadores
Identificador es el nombre con el que se referencia a una función, una • Tipos de datos
constante, un objeto o una variable. Existen unas reglas sobre cómo se
pueden elegir dichos nombres. Hablando de JavaScript las reglas serían • Operadores y expresiones
las siguientes: • Estructuras de control
- Lo primero es tener en cuenta que JavaScript distingue entre • Funciones
mayúsculas y minúsculas. No es lo mismo miVariable que
MiVariable, serían objetos distintos a todos los efectos. • Instrucciones de entrada
/ salida
- Los identificadores no podrán empezar por un número.
61
las que queremos usar a lo largo de todos lo scripts contenidos en la
página.
Por último decir que podemos declarar más de una variable a la vez,
podemos utilizar la expresión: var variable1, variable2, etc...;
2. TIPOS DE DATOS
Tipo de dato es el tipo de contenido de una variable, es decir, lo que
guardamos en ella. Así podemos hablar de los tipos más generales
como son los numéricos, de texto o booleanos. Si hablamos de
lenguajes más exigentes incluso podemos hablar de distintos tipos
de datos numéricos según sean enteros, decimales o permitan el
almacenamiento de un valor mayor o menor. En concreto, JavaScript
es un lenguaje débilmente tipado, lo cual quiere decir que las variables
pueden fácilmente cambiar de tipo de dato y que incluso no es
necesario que cuando definamos una variable indiquemos su tipo.
Si escribimos var miVariable; estaremos declarando una variable de
manera totalmente válida, por hablar de forma llana, hemos reservado
un espacio de memoria que se llama de la manera indicada pero no
hemos definido qué es lo que vamos a guardar ahí. Será en el momento
en el que vinculemos algún valor con la variable cuando esta adquirirá
ese tipo.
9º-16º parte 44
significativa (número).
124.28
Por ejemplo: 1 0000010 -2
00001110 = -8E2. En
concreto JavaScript +349.11
utiliza la representación -33.44
doble precisión de 64 bits
formato IEEE 754. En esa Además, en JavaScript podemos utilizar la notación exponencial,
representación tendremos también conocida como notación científica, para representar números
un bit para el signo, 11 en coma flotante
para el exponente y 52 92.213E+4
para el número, lo cual
se traduce que puede 1234E-2
representar valores entre -723.123E18
2,2250738585072014e-308
y Según esta notación el primer número sería equivalente a 922130, es
1,7976931348623158e +308. decir desplazamos a la derecha la coma decimal tantas posiciones como
indica el exponente (en este caso 4) completando con ceros cuando no
haya más números. Si el exponente es negativo como en el segundo
ejemplo, la posición de la coma se desplaza hacia la izquierda, en este
caso tendríamos 12.34.
Secuencia Valor
\b backspace (\u0008)
Nuev
\n
a de línea (\u000A)
var miNumero = 0;
3. OPERADORES Y EXPRESIONES
En este apartado vamos a introducir a los operadores y las expresiones.
Los primeros son los que nos permiten manejar y transformar el valor
de una variable. Este proceso lo realizarán en forma de expresiones,
por lo que a estas las podemos definir como combinación de variables,
constantes y operadores que, por lo general, devolverán un valor.
- Igual valor y tipo: ===, en este caso para que devuelva un true los
operandos deben tener el mismo valor y ser del mismo tipo.
- Distinto y/o tipo: !==, devuelve true si los operandos no son iguales
y/o no son del mismo tipo.
Además de estos tenemos otros dos que son muy útiles también:
1 1 1
1 0 1
0 1 1
0 0 0
NOT (!)
Operando 1 Resultado
1 0
0 1
var1 = “Hola”;
var1 = “Hola”;
- void: especifica que una expresión pueda ser evaluada sin retornar
un valor. Su sintaxis es void (expresión).
- Concatenación de variables:
- Primero las más elementales como son aquellas que solo utilizan un
operador
objetoPrueba.propiedad
objetoPrueba.propiedad = “rojo”;
objetoPrueba.metodo()
4. ESTRUCTURAS DE CONTROL
4.1 Sentencia IF
Es la más sencilla pero es probablemente la más empleada. La palabra
if en inglés significa si, un si condicional, el mismo que empleamos para
decir: si me tocase la lotería o si aprueba este curso. En el uso habitual
del lenguaje lo utilizamos para discriminar entre dos posibles opciones:
si se cumple una premisa (condición) tomaremos un camino y si no se
cumple iremos por otro lado. Exactamente eso es para lo que sirve en
un contexto de programación. Veamos ahora cual es la sintaxis correcta
utilizada en JavaScript.
If (condición)
- Condición lógica:
if (miVariable)
En este caso usamos una variable lógica cuyo contenido puede ser
true o false. Otro tipo de condición lógica es la negación:
if (!miVariable)
- Condición comparativa:
if (miVariable >= 8)
Hasta ahora solo hemos visto que if hace “algo” cuando se cumple la
condición pero ¿y en el caso de que no se cumpla? Cuando se da esta
circunstancia y queremos ejecutar algunas líneas de código deberemos
utilizar la palabra reservada else. Es una palabra inglesa que podemos
traducir por “de otro modo” o “en otro caso”, es decir que si no se
cumple la condición de la sentencia if indicamos por donde debe
continuar el programa. Vemos la sintaxis en un ejemplo:
else
La regla general es que else pertenece al if más cercano, habrá que ser
cuidadoso con la colocación de las llaves para no cometer errores.
if (miVariable1 == 100) {
else {
if (miVariable1 == 100)
else
if (miVariable1 == 20)
else {
if (miVariable1 == 30)
else {
while (condición)
Sentencias a ejecutar;
do
Sentencias a ejecutar;
while (condición)
while (miVariable1)
Sentencias a ejecutar;
var i = 0;
Sentencias a ejecutar;
estanteria[0]=”uno”;
estanteria[1]=”dos”;
estanteria[2]=”tres”;
estanteria[3]=”cuatro”;
estanteria[4]=”cinco”;
var miVariable=1;
var i;
if (i==8)
{
Cuando el programa llega
break;
hasta ella abandona el
} bucle en el mismo punto
en el que está.
}
var i;
var j=0;
if (i==8)
j=j+1;
Su sintaxis es la siguiente:
switch (miVariable)
case valor1:
break;
case valor2:
break;
case valor3:
break;
default:
break;
Con el uso de break nos aseguramos que una vez que ha entrado en
una opción y ejecutado las instrucciones, abandona el switch.
switch (estadoCivil)
case “soltero”:
break;
case “casado”:
break;
case “divorciado”:
break;
case “viudo”:
break;
default:
break;
5. FUNCIONES
function nombreFuncion(parámetros)
Cuerpo de la función;
<script type=“text/javascript”>
</script>
<script type=”text/javascript”>
if (isFinite(varNumero))
</script>
if (isNaN(numero1)){
else{
</script>
<script type=“text/javascript”>
</script>
<script type=”text/javascript”>
</script>
<script type=“text/javascript”>
</script>
<script type=”text/javascript”>
recogeValor = nombreFuncion();
nombreObjeto.nombreFunción();
B. Almacenamiento en variables
Una vez que el usuario ha consignado aquello que se le pide, hay
que guardar el valor de alguna manera, y esto es utilizando variables.
Hay que tener en cuenta el hecho de que en JavaScript no se asigna
obligatoriamente un tipo de datos a sus variables, por lo que es muy
recomendable, después de validar, asignar cada valor en una variable
correctamente tipada.
<script language=”text/javascript”>
var recogeDato;
</script>
<html>
<head>
<title>Funcionamiento document.write</title>
<script type=”text/javascript”>
function llamaFuncion()
</script>
</head>
<body>
<form>
</form>
</body>
</html>
Desarrollo de
scripts 4
• Herramientas de
1. HERRAMIENTAS DE DESARROLLO, desarrollo, utilización
UTILIZACIÓN • Depuración de errores:
errores de sintaxis y de
Cualquier lenguaje de programación necesita un entorno desde el ejecución
cual crear los programas. En el caso del desarrollo web necesitamos
un editor en que resulte cómodo escribir HTML, CSS y JavaScript, • Mensajes de error
ya que los tres lenguajes van de la mano y en general los tendremos
mezclados dentro de la misma página web.
OBJETIVOS:
Los requisitos deseables para estos editores son los siguientes:
- Conocer y aprender a
1. Que utilicen una gama de colores para diferenciar etiquetas, manejar programas para
selectores y propiedades. desarrollar scripts
2. Que cuando esté escribiendo el código sugiera posibilidades. De - Ser capaz de solucionar
esta manera evitamos tener que recordar al pie de la letra la sintaxis errores de sintaxis y
y sobre todo evitamos errores en el código. A esto se le conoce ejecución
como ayuda contextual.
- Familiarizarnos con los
3. Como último deseo podemos exigir que nos pueda ser útil además mensajes de error del
para desarrollar páginas más avanzadas, por ejemplo con CSS, lenguaje JavaScript
JavaScript, PHP, etc. Esta tercera exigencia se retroalimenta de las
- Desarrollar funciones para
dos anteriores, ya que podemos pedir, que cada lenguaje adopte
controlar los errores
un color y además que nos sugiera el código tanto si estamos
escribiendo HTML, como JavaScript e incluso PHP o Java. De
esta manera no tenemos que estar cambiando de editor según
trabajemos con uno u otro.
95
1.1 Crear scripts con herramientas de texto
Hagamos un repaso de herramientas partiendo de las más sencillas a
las más complejas.
Vemos que asigna un color distinto en función del tipo de código. También por
medio de un sistema de plugins podemos hacer que nos sugiera la sintaxis.
Por último, otro del mismo estilo, esta vez en español, Hscripts (http://
es.hscripts.com/). Este sito está centrado en desarrollo web por lo que
no nos distraerán otros lenguajes.
if (nombreUsuario == “Antonio”)
else
Este sencillo trozo de código con un if y un else será mucho más claro y más
fácil de leer si en vez de poner todas las líneas al mismo nivel tabulamos:
if (nombreUsuario == “Antonio”)
else
Si nos fijamos en el proceso que sigue vemos que pasa por diferentes
pasos. Por ejemplo, el analizador lexicográfico, el analizador sintáctico/
semántico, etc. Lo que nos aseguran estos pasos es que el código
está bien formado y es correcto, porque en caso contrario devolvería
un error parando el proceso. Es de estas herramientas de lo que
carecen los lenguajes interpretados como JavaScript, no siendo hasta
el momento de su puesta en funcionamiento cuando surgen los
errores sintácticos o semánticos no vistos anteriormente. Por ello se
hacen necesarias herramientas externas para poder solucionar estos
problemas.
3. MENSAJES DE ERROR
Cuando ocurre un error en JavaScript el navegador lanzará un error que
podrá ser consultado en la consola. Estos errores pueden ser tratados
y manejados de manera que podamos actuar en consecuencia. Muchos
lenguajes de programación, y JavaScript no es una excepción, tienen
algún tipo de sistema para controlar esos mensajes de error evitando
que se muestre al usuario un mensaje alarmante o una pantalla en
blanco. En la siguiente sección veremos cómo podemos hacer esto con
JavaScript
try {
catch(errorJS){
try {
}catch(errorJS){
try
catch(miError)
alert (miError);
Gestión de objetos
del lenguaje 5
de guion
• Jerarquía de objetos
1. JERARQUÍA DE OBJETOS
• Propiedades y métodos
La jerarquía de objetos de JavaScript conocida como DOM (Document de los objetos del
Object Model) es la estructura en la que basa el lenguaje su acceso navegador
a los objetos que forman parte del navegador. Dicho de otra manera
es una interfaz a través de la cual se accede a las propiedades de los • Propiedades y métodos
navegadores, por lo que podemos decir que es una interfaz (API) que de los objetos del
nos permite interactuar dinámicamente con el contenido, estilo y documento
estructura de un documento. También es un estándar de la W3C, que • Propiedades y métodos
define como acceder a documentos HTML, XML, etc. Indirectamente ya de los objetos del
hemos utilizado el DOM: cuando escribimos document.write estamos formulario
accediendo al objeto document para realizar una acción: write. Lo
primero será entonces conocer de qué objetos estamos hablando y que • Propiedades y métodos
jerarquía se establece entre ellos. El objeto principal del que dependen de los objetos del
la mayoría es Window, directamente dependientes de él son frame, lenguaje
document, location y history. Dentro de document, a su vez tendremos
más objetos. Lo mejor es verlo en un gráfico (ver figura 1).
OBJETIVOS:
Siguiendo estas relaciones podremos hacer referencia (por ejemplo) a una
caja de texto de un formulario de la siguiente manera: window.document. - Conocer la estructura y
form.text. La sintaxis no es del todo exacta (ya concretaremos). Además, jerarquía de los objetos del
por regla general, se prescinde del objeto window ya que de él se derivan DOM
todos los demás. Fuera de jerarquía quedará el objeto navigator del que
- Conocer las propiedades y
dependen a su vez plugin y mimetype. Poco a poco a lo largo del tema
métodos de los objetos del
iremos concretando como se usa cada una de ellos.
navegador
Se utilizó por primera vez en el navegador Netscape 2.0. A esta
- Aprender las propiedades y
especificación se le conoce como DOM nivel 0. En 1998 la W3C, para
métodos de los objetos del
evitar las diferencias entre navegadores, emitió la especificación nivel
documento
1 en la que se contemplaba ya la manipulación de todos los elementos
HTML. En el 2000 se emitió el DOM nivel 2 en el que se incluía la - Conocer las propiedades y
manipulación de eventos del navegador y la interacción con las hojas métodos de los objetos del
de estilo. En 2004 se emite el DOM de nivel 3 en el que se contempla formulario
113
- Conocer las propiedades y
métodos de los objetos del
lenguaje
Figura 1
- document, del que cuelgan todos aquellos objetos que tienen que
ver con la página web.
- layer.
- link.
- image.
- area.
- anchor.
- applet.
- plugin.
- form.
- textarea.
- text.
- fileUpload.
- password.
- hidden.
- submit.
- reset.
- radio.
- checkbox.
- button.
<div id=”miCapa”>
</div>
capa1.style.backgroundColor = “red”;
document.getElementeById(“miCapa”).style.backgroundColor=”red”;
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<title>Ejemplo XHTML</title>
</head>
<body>
</body>
</html>
- Attr: representa los atributos de los elementos, habrá uno por cada
atributo.
- createElement (nombre).
- createTextNode (texto).
- nodoPadre.appendChild(nodoHijo).
Para crear un nodo hijo no basta con declararlo, sino que hay que
seguir unos pasos para completar el proceso:
Propiedades:
Métodos:
Métodos:
Propiedades:
Métodos:
Propiedades:
Métodos:
<head>
<title>Manual de JavaScript</title>
</head>
<body>
<script>
</script>
</body>
</html>
<body id=”cuerpo”>
<div id=”miCapa”>
</div>
document.getElementById(“cuerpo”).style.
backgroundColor=”grey”;
</script>
</body>
<form name=”formulario1”></form>
<form name=”formulario2”></form>
<script>
document.write(document.forms[0].name);
document.write(document.forms[1].name);
</script></p>
</body>
document.forms[“formulario1”]...
Como resumen hay que destacar que la elección de estos tres objetos
nos muestra tres tipos distintos de elementos: el primero (title) es una
propiedad directa del objeto document, el segundo caso que hemos
visto ha sido como cambiar el color de fondo y hemos visto que se
accede seleccionando el elemento HTML y modificando su CSS a
través de la propiedad style. Por último hemos visto que dentro del
objeto document hay un nuevo objeto con sus métodos y propiedades
propios. De manera que debemos saber que podemos acceder de
diversas formas a las propiedades que queremos cambiar y que
deberemos conocer cómo hacerlo para cada caso.
Ejemplo 1:
“http://www.w3.org/TR/html4/strict.dtd”>
<head>
<script>
function cuentaEnlaces()
</script>
</head>
<body>
</body>
</html>
Ejemplo 2:
“http://www.w3.org/TR/html4/strict.dtd”>
<head>
<title>HTML</title>
<script>
function muestraCookies()
</script>
</head>
<body>
</body>
</html>
Ejemplo3:
“http://www.w3.org/TR/html4/strict.dtd”>
<head>
<title>HTML</title>
<script>
function muestraDatos()
</script>
</head>
<body>
</body>
</html>
Ejemplo1:
document.addEventListener(“click”, function(){
});
Ejemplo 2:
“http://www.w3.org/TR/html4/strict.dtd”>
<head>
<style type=”text/css”>
.clasePrueba{
color:blue;
</style>
<script>
function cambiaTitulo()
var titulo=document.getElementsByTagName(“H1”)[0];
var atributo=document.createAttribute(“class”);
atributo.value=”clasePrueba”;
titulo.setAttributeNode(atributo);
</script>
</head>
<body>
</body>
</html>
Ejemplo 3:
“http://www.w3.org/TR/html4/strict.dtd”>
<head>
</head>
<body>
<ul><li>html</li><li>css</li></ul>
<script type=”text/Javascript”>
function cambiaLi()
var cambia=document.createDocumentFragment();
cambia.appendChild(document.getElementsByTagName(“li”)[0]);
cambia.childNodes[0].childNodes[0].nodeValue=”Javascript”;
document.getElementsByTagName(“ul”)[0].appendChild(cambia);
</script>
</body>
</html>
<script>
function writePagina()
</script>
<script type=”text/Javascript”>
function writePagina(){
document.open()
document.close()
</script>
Ejemplo 4:
“http://www.w3.org/TR/html4/strict.dtd”>
<head>
</head>
<body>
<script>
function abre()
var pagina=document.open(“text/html”,”replace”);
pagina.write(nuevo);
pagina.close();
</script>
</body>
</html>
- target: establece el valor del atributo, las posibilidades son las mismas
que en html, _blank, _self, _parent, etc.
- GET: usando GET tan solo podemos enviar hasta 500 bytes a
la página de destino y además no permite el envío de archivos
adjuntos. Otra característica importante es que los datos que se
transmiten aparecen formando parte de la URL de destino. Si nos
fijamos en la dirección que se forma cuando buscamos algo en
Google podremos ver un claro ejemplo de formulario enviado a
través de un método GET.
- write: sirve para escribir texto. Recordar que hay que tener en
cuenta que cuando lo ejecutamos se inicia de nuevo el flujo, lo que
conlleva que la página se escribe de nuevo.
<form>
</form>
function cambiaColor()
document.getElementById(“capa1”).style.color=”blue”;
</script>
document.getElementById(“capa1”).style.backGroundColor=”blue”;ç
document.title=”Mi título”;
Propiedad:
Métodos:
Y los métodos:
Propiedades:
Métodos:
• Eventos de formulario
1.1 Definición de eventos • Eventos de ventana
Por evento entendemos todo aquello que puede ser detectado y • Otros eventos
que pueda producir una reacción. Lo que podemos hacer con el
ratón es pulsar sobre algún elemento, pulsar dos veces o desplazar
el ratón sobre una zona. También podemos convertir en eventos OBJETIVOS:
los distintos comportamientos que se producen en los formularios:
- Conocer y utilizar los eventos
hablamos de entrar en un elemento o abandonarlo, desplegar una
disponibles
lista, pasar el foco o retirarlo. De todos ellos hablaremos en este
tema desde el punto de vista de su utilización y aprovechamiento - Conocer su jerarquía
por JavaScript.
- Manejar los eventos de todo
Podemos establecer una clasificación de eventos de la siguiente tipo: de teclado, de ratón, de
manera: formulario, etc.
- Eventos de usuario:
141
- Eventos generados desde código:
Un evento suele - A consecuencia de cambios en el contenido, aspecto o
desencadenar una estructura.
llamada a una función,
de manera que aquellas - Especificación DOM.
acciones que queremos Iremos desgranando los distintos tipos de eventos en función de cómo
que se produzcan queden se producen o en qué elemento.
recogidas dentro de
una porción de código
identificable y localizable
1.2 Acciones asociadas a los eventos
fácilmente.
Una vez que se ha desencadenado el evento necesitaremos tratarlo.
Para ello tendremos un manejador, esto es un fragmento de código,
que habitualmente toma la forma de función y que se ejecuta para dar
respuesta a la ocurrencia del evento.
</form>
<script>
function miFuncion()
</script>
<form>
</form>
<script>
function miFuncion()
</script>
<script>
function miFuncion()
</script>
“http://www.w3.org/TR/html4/strict.dtd”>
<head>
<title>HTML</title>
<style type=”text/css”>
div{
position:absolute;
left:10%;
top: 20%;
width: 500px;
height: 500px:;
</style>
</head>
<body>
<form>
<script>
function miFuncion(event)
var coordX=event.clientX;
var coordY=event.clientY;
document.getElementById(“miLabel”).value=”Las
coordenas del puntero son: “ + coordX +” , “ + coordY;
</script>
</body>
</html>
Este es un ejemplo algo más completo que además utiliza algo nuevo
que no hemos visto hasta ahora, el objeto event. Este objeto nos El objeto event solo
permite recibir propiedades del evento, el elemento en el que ocurre,
está disponible durante
el estado de las teclas, la posición del ratón y el estado de los botones
el tiempo que dura el
del ratón. Sus propiedades nos pueden ser útiles por lo que las
detallamos a continuación: evento, por lo que se
puede utilizar con el
- altKey: devuelve si se ha pulsado o no la tecla ALT. manejador del propio
evento y solo ahí, en
- button: nos indica que botón del ratón se ha pulsado.
cualquier otra zona de
- clientX: nos devuelve la coordenada X del puntero del ratón. código no funcionará.
</div>
</form>
<script>
function miFuncion()
</script>
<form>
</div>
</form>
<script>
function miFuncion()
</script>
</div>
</form>
<script>
function miFuncion()
</script>
<form>
</form>
<script>
function miFuncion()
</script>
</form>
<script>
function miFuncion()
</script>
<form>
</form>
<script>
function miFuncion()
</script>
4. EVENTOS DE ENFOQUE
Los eventos de enfoque son aquellos que se producen cuando
pasamos el foco, es decir seleccionamos un elemento, normalmente de
formulario.
</form>
<script>
function miFuncion()
</script>
<form name=”formulario1”>
</form>
<script>
function miFuncion()
</script>
5. EVENTOS DE FORMULARIO
Aunque ya hemos visto eventos que se aplican de forma natural en
elementos, vamos a repasar algunos que son específicos de estos.
</form>
<script>
function miFuncion()
</script>
“http://www.w3.org/TR/html4/strict.dtd”>
<head>
<title>HTML</title>
</head>
<body>
</form>
</body>
</html>
6. EVENTOS DE VENTANA
Son aquellos que tienen que ver con el tratamiento de la ventana del
navegador.
...
</body>
...
</body>
7. OTROS EVENTOS
Dentro de esta categoría de otros eventos se incluyen aquellos que
no encajan en ninguna de las clasificaciones anteriores, ya sea por su
ámbito de aplicación o por sus características.
</body>
</body>
Ejemplo:
</div>
<script type=”text/javascript”>
function mifuncion()
</script>
</body>
</body>
</body>
Búsqueda y análisis
de scripts 7
• Búsqueda en sitios
INTRODUCCIÓN especializados
Vivimos en un mundo en el que es difícil que alguien no hay hecho • Operadores booleanos
antes aquello que necesitamos, y con el auge de Internet, además,
podemos tener al alcance de nuestras manos una cantidad ingente • Técnicas de búsqueda
de recursos y materiales que nos faciliten el trabajo. Esto no • Técnicas de refinamiento
quiere decir que será suficiente con localizar un script y añadirlo de búsquedas
a nuestra página, nada más lejos de la realidad. El proceso incluirá
un trabajo de búsqueda, de selección y luego en el 90% de los • Reutilización de scripts
casos de adaptación a nuestras necesidades concretas y a nuestras
circunstancias. Por lo tanto lo primero que hay que saber para
reciclar código que encontremos en la red es programar en el OBJETIVOS:
lenguaje en el que esté hecho.
- Poder identificar y elegir
Otro aspecto importante es saber dónde buscar: existen multitud páginas y sitios web que
de páginas, de entre las cuales habrá que elegir aquellas que nos nos ayuden en el proceso de
aportan mejores soluciones. Todos tendremos nuestras favoritas aprendizaje y posteriormente
y muchos programadores web coincidirán en unas pocas de ellas. de desarrollo
Debemos conocer lo que nos ofrece la red para poder sacar el
- Aprender a realizar
máximo partido.
búsquedas ajustadas y
Por último en este tema vamos a aprender a realizar búsquedas en precisas
Internet, no solo de scripts, sino de cualquier otro tema, para ello
- Conocer algunas páginas
debemos tener unos conocimientos sobre búsquedas, booleanos y
web a las que acudir para
sintaxis.
encontrar y contrastar
ejemplos utilizables luego en
nuestros scripts
155
1. BÚSQUEDA EN SITIOS ESPECIALIZADOS
Este documento es muy completo pero es demasiado críptico, por lo que se hace
difícil de seguir sobre todo para principiantes.
Otras páginas oficiales a las que podemos recurrir son las propias
de los navegadores. Al fin y al cabo son estos los que implementan
1.2 Tutoriales
Dentro de la cantidad ingente de páginas que nos ofrece la web
siempre habrá unas cuantas de referencia que por su calidad y claridad
se conviertan en las páginas de referencia a las que acudiremos en caso
de duda.
Estos son tres ejemplos de páginas que pueden ser utilizadas como
soporte en cualquier desarrollo. Evidentemente dada la extensión
de la web, no son las únicas y ni siquiera podríamos decir que las
mejores. Sí podemos decir que son tres de las utilizadas, que son
completas y fiables. En cada momento podremos acudir a una u otra
para resolver una duda puntual o bien acudiremos a otra página. En
concreto unas de las páginas más comunes para solucionar dudas
o problemas son las páginas de Foros, de las cuales hablamos a
continuación.
1.4 Bibliotecas
Por bibliotecas debemos entender un conjunto de script, de JavaScript
en nuestro caso, agrupados que pueden ser llamados desde nuestros
programas y que solucionan problemas complejos o repetitivos
evitándonos la tarea de programarlos por nosotros mismos. En general
estos script suelen estar en forma de función.
Cada una de ellas tendrá sus puntos fuertes sobre las otras. Algunas son
más específicas, como Google Web Toolkit, pensada para desarrollar
aplicaciones relacionadas con Google, o Ajax Framework, orientada a
las transacciones Ajax. Su uso es similar entre todas, por lo tanto vamos
Jquery fue creada por John Resig y nos permite simplificar la creación
de animaciones, las interacciones Ajax, los accesos al árbol DOM, etc.
Esta biblioteca es software libre y de código abierto distribuyéndose
bajo una licencia MIT y la Licencia Pública General de GNU v2.
<head>
</head>
$(objeto).evento(función);
$(div).click(ejecuta());
$(document).ready(function()
<html>
<head>
<style type=”text/css”>
.clase1{
background-color: green;
.clase2{
background-color: red;
</style>
<script>
$(document).ready(function(){
$(“div.cambia”).mouseover(function(event){
$(“#capaCambiar”).addClass(“clase1”);
});
$(“div.cambia”).mouseout(function(event){
$(“#capaCambiar”).removeClass(“clase2”);
});
});
</script>
</head>
<div id=”capaCambiar”>
</div>
<br>
<br>
<br>
<br>
</body>
</html>
1 0 0
0 1 0
0 0 0
NAND
1 1 0
1 0 1
0 1 1
0 0 1
OR
1 1 1
1 0 1
0 1 1
0 0 0
NOR
1 1 0
1 0 0
0 1 0
0 0 1
NOT (!)
Operando 1 Resultado
1 0
0 1
XOR
1 1 0
1 0 1
0 1 1
0 0 0
En este caso tenemos que las primeras posiciones las copa Radio
Televisión Española y a continuación dos periódicos, encuentra
325.000.000 resultados en 0,39 segundos.
En Yahoo:
3.1 Expresiones
Un aspecto importante a la hora de elaborar las expresiones
de búsqueda es como utilizamos el lenguaje y como lo utilizan
aquellos que han hecho aquellas páginas que buscamos. Por ello y
para estandarizar su clasificación cada documento es descrito por
un conjunto de términos que lo representan. A esta descripción se
le conoce como indización.
- Definir el idioma.
3.3 Especificaciones
Respecto a las especificaciones para realizar una búsqueda de calidad
debemos ser conscientes de que para elegir una fuente de información
hay que tener en cuenta:
- Definir el idioma.
En este primer caso hemos hecho una frase con varios de los
términos de búsqueda. Este sería un ejemplo de lenguaje natural
empleado para realizar una búsqueda. Realmente no es tan “natural”
ya que es el resultado de un análisis previo que nos ha llevado hasta
dicha frase.
4. TÉCNICAS DE REFINAMIENTO DE
BÚSQUEDAS
Para poder realizar búsquedas más ajustadas y recuperar aquella
información que realmente nos interesa necesitamos utilizar los
operadores que introdujimos en secciones anteriores. Entonces vimos
qué eran y algún ejemplo sencillo. En este epígrafe vamos a revisar y
profundizar en su uso cuando en las búsquedas intervienen muchos
términos o la relación entre ellos es compleja.
El resto de los campos nos permiten definir el idioma, las fechas del
documento, la región, el tipo de archivo o incluso el tipo de licencia de
publicación entre otras características.
5. REUTILIZACIÓN DE SCRIPTS
La mayoría de los problemas que un programador tiene que resolver
durante su trabajo ya han sido resueltos anteriormente por alguien. Por lo
tanto, es una buena idea reciclar código ya sea propio o ajeno. La forma en
la que nos enfrentamos a la hora de abordar un nuevo script ha cambiado
sustancialmente con Internet. El problema puede ser conocido, con lo cual
- También nos hemos provisto de una buena lista de páginas a las que
acudir en caso de duda, ya sean en forma de tutoriales, foros, etc.
Glosario 189
- Datos de texto: son aquellos destinados a almacenar cadenas de
caracteres.
190 Glosario
- Función: es una porción de código que se llama desde el programa
principal al que se le pueden enviar algunos valores (parámetros) y
que una vez procesado devuelve un valor conocido como resultado
de la función.
Glosario 191
- Lenguajes de scripts: son lenguajes que la computadora evalúa línea
a línea sin ningún procesamiento previo. Son independientes del
sistema operativo ya que no generan programas ejecutables. Suelen
ser más veloces al ejecutarse.
- Onload: Se ejecuta al cargar una página, una imagen, los estilos, etc.
192 Glosario
- Onmouseover. Se produce cuando el puntero entra en un elemento.
Glosario 193
- Tabla de verdad: es una representación del comportamiento
de un operador lógico teniendo en cuenta todas las posibles
combinaciones que pueden tomar los valores de los operandos.
- WYSIWYG (What You See Is What You Get): lo que ves es lo que
obtienes.
194 Glosario
- David Flanagan O´Reilly. JavaScript. The Definite Guide. 6Th
Edition.
BIBLIOGRAFÍA
- Client- Side JavaScript Reference. Netscape Communications
Corporation.
WEBGRAFÍA
- www.desarrolloweb.com.
- www.librosweb.es
Bibliografía 195