Académique Documents
Professionnel Documents
Culture Documents
Los objetos Javascript utilizan herencia basada en prototipos, muy diferente de la herencia
basada en clases propia de los lenguajes orientados a objetos, como Java. En Javascript los
objetos heredan propiedades directamente de otros objetos sin necesidad de que sean
instancias de una misma clase.
Es un lenguaje dbilmente tipado, lo que permite que una variable pueda contener valores
de distintos tipos en diferentes momentos de la ejecucin del programa. Esto presenta como
principal inconveniente que muchos errores de programacin no aparecen hasta que el
programa es ejecutado, ya que el compilador es incapaz de detectarlos.
Para empezar a realizar programas en Javascript, solo necesitamos un explorador web y un editor
de textos, no necesitamos descargar ningn software especial para empezar a experimentar con
Javascript.
Para ejecutar cualquier programa Javascript tenemos que embeber el cdigo Javascript en una
pgina HTML de la misma forma que insertamos cualquier otro contenido HTML: utilizando
etiquetas para marcar el principio y el fin del bloque de cdigo Javascript. En este caso utilizamos la
etiqueta <script></script>.
De esta forma el navegador sabe que el bloque de texto contenido entre la etiqueta de inicio y fin no
se corresponde con cdigo HTML, si no que se trata de cdigo que debe ser procesado antes de
mostrar el resultado en pantalla. As el navegador que incluye un intrprete de Javascript, se
encargar automticamente de ejecutar el cdigo cuando cargue la pgina y reflejar el efecto de la
ejecucin sobre la pgina que tiene que mostrar.
En la unidad anterior vimos las diferentes formas de embeber el cdigo Javascript en la pgina
HTML.
DEPURACIN DE JAVASCRIPT.
El problema que tenemos al programar en javascript es la depuracin del cdigo, ya que si no
tenemos algn tipo de herramienta es bastante complicada. Si utilizamos Firefox para nuestras
pruebas, podemos utilizar Firebug, que es una extensin de Firefox muy til para desarrolladores
del web, que permite examinar minuciosamente cada uno de los elementos de la pgina, en busca de
errores del cdigo o fallos de presentacin. Por medio de Firebug podemos controlar cualquier cosa
que ocurre dentro de Firefox cuando carga cualquier pgina web. Permite examinar todos los
elementos HTML, y adems los estilos CSS y los cdigos de scripting en Javascript que est
ejecutando la pgina.
Antes que nada habra que comentar lo que son las extensiones de Firefox. Son una especie de
plugins o aadidos que se pueden instalar de manera adicional en Firefox, para proveer al
navegador de nuevas funcionalidades.
Firebug es una de esas extensiones imprescindibles para desarrolladores, que nos puede ahorrar
mucho tiempo, puesto que ayuda a buscar errores o entender posibles comportamientos anmalos o
no esperados de la pgina que estamos desarrollando. Con Firebug podemos examinar cada parte de
la pgina, saber de qu elementos depende dentro de la jerarqua de etiquetas HTML y todos los
estilos CSS que se aplican. Adems de permitir alterar en lnea cualquier etiqueta o
declaracin de estilos, para ver el resultado sin tener que editar el cdigo y recargar el
documento. Adems, nos da informaciones completas de los script Javascript y los errores que se
puedan producir en la ejecucin del cdigo.
Como cualquier extensin de Firefox, es gratuita y libre de uso, con lo que cualquiera se puede
aprovechar de esta importante ventaja para desarrollar webs libres de errores.
Entre las caractersticas de la extensin destacamos:
Se puede abrir Firebug en una nueva ventana o bien en la parte de debajo de la ventana del
navegador. Una vez instalada la extensin, en el men de herramientas tenemos las
opciones de Firebug, para ponerlo en funcionamiento y definir donde queremos que
aparezca la consola.
Se puede inspeccionar cualquier etiqueta HTML y editarla desde el propio Firebug, para ver
los resultados en la pgina al instante.
Lo mismo con los estilos CSS, podemos ver qu estilos afectan a cada rea o elemento de la
pgina y editarlos en el instante por medio de la consola Firebug, viendo los resultados en la
propia pgina.
Tiene herramientas para ver cmo se maquetan los elementos de la pgina con las
propiedades CSS, para ver donde se sita cada elemento y por qu, los mrgenes, padding,
etc.
Otra cosa interesante que ofrece es una visualizacin del tiempo que ocupa al navegador
descargar o poner en marcha cada uno de los elementos que componen la pgina, lo que nos
puede dar una idea de qu consumos de tiempo tiene cada parte, como imgenes, banners,
scripts externos, etc. Muy til si tu pgina se retrasa en cargar y no sabes exactamente por
qu.
Permite debug del cdigo Javascript. Adems, cuando algo no funciona bien, Firebug lo
resalta para que lo veas fcilmente y te da informaciones sobre lo que puede estar
ocurriendo.
Permite explorar la jerarqua Javascript de componentes del navegador (DOM).
Para instalar firebug, vamos a Herramientas>Complementos, y tecleamos firebug, hacemos clic en
Intro, nos aparece el complemento, hacemos clic en instalar y procedemos a instalarlo. Una vez
instalado nos aparecer un insecto en la barra de herramientas a la izquierda, y haciendo clic en el
mismo podemos hacer que se active/desactive el depurador. Podemos utilizar la tecla F12 para
activar/desactivar FireBug.
Cuando est activado firebug, la pantalla de Firefox se divide en dos, en la parte superior podemos ver
el aspecto de la pgina, mientras que en la parte inferior podemos ver el cdigo de la misma. Tenemos
varias pestaas en la parte inferior que nos permiten ver el HTML, el CSS, el DOM, etc. La pestaa
consola nos permite visualizar los errores de javascript. En ocasiones los errores estn en la lnea
superior no en la que nos seala la consola.
El comando console.log (), nos permite visualizar mensajes en la consola para obtener una especie de
traza de por donde va nuestro cdigo, por ejemplo console.log ("Pasando", var1), nos imprimir en la
consola el texto Pasando seguido del valor de la variable var1, lo que nos permite realizar un seguimiento
dentro de un bucle. Para limpiar la consola tenemos console.clear();
Podemos observar que en la primera actividad hemos utilizado una cadena de escape para mostrar
correctamente los caracteres tildados. Para evitar este problema debemos emplear la cadena \xdd,
donde dd corresponde al carcter especial especificado por dos dgitos hexadecimales segn el
estndar Unicode. Existen diferentes secuencias de escape que son tiles a la hora de introducir no
solo caracteres tildados, sino tambin saltos de lnea (\n), tabuladores (\t), etc.
Versin 2:
<script type="text/javascript">
var i,j=0;
for (i=0;i<5;i++) {
alert("Variable :" +i);
for (j=0;j<5;j++){
if (i % 2==0) {
document.write (i+"-"+j+"<br>");
}
}
}
</script>
Podemos ver que la segunda versin es mucho ms fcil de comprender.
Normalmente se suele insertar un signo de punto y coma (;) al final de cada instruccin de
Javascript, al igual que se hace en lenguajes de programacin como C o Java. Este signo tiene la
utilidad de separar y diferenciar cada instruccin.
Por ejemplo, las siguientes instrucciones podran escribirse de este modo:
pi_egipcio = 3.16
pi_griego = 3.14
Sin embargo, si queremos definir los dos valores en una misma lnea, es necesario utilizar al menos
el primer punto y coma:
pi_egipcio = 3.16; pi_griego = 3.14;
Es aconsejable utilizar siempre el punto y coma, para marcar el final de una instruccin.
Javascript contiene una serie de palabra reservadas que no podemos utilizar para definir nombres
de variables, funciones o etiquetas. Segn la versin 5.1 de ECMAScript, las palabras reservadas
son las siguientes:
break
delete
if
this
while
case
do
in
throw
with
catch
else
instanceof
try
continue
finally
new
typeof
debugger
for
return
var
default
function
switch
void
Adems de las anteriores palabras reservadas del lenguaje, el estndar ECMAScript contempla el
uso de otras palabras reservadas en futuras versiones, como por ejemplo class,const,enum y
export. Aunque los interpretes actuales de Javascript permiten el uso de estas futuras palabras
clave, podemos revisar la versin del estndar e indagar cuales son en el momento actual, con el fin
de evitar su uso en la realizacin de programas.
En la pgina web http://www.ecmascript.org podemos consultar las palabras reservadas para las
futuras versiones del estndar. Otras webs de interes relacionadas con el lenguaje son:
http://www.w3schools.com y http://www.desarrolloweb.com entre otras.
Resultado
\\
Bara Invertida
\'
Comilla Simple
\"
Comilla Doble
\n
Salto de lnea
\t
Tabulacin Horizontal
\v
Tabulacin vrtical
\f
Salto de pgina
\r
Retorno de carro
\b
Retroceso
El tipo de datos booleano, tambin conocido como valores lgico, es el tipo de datos ms simple
debido a que admite solo dos valores:true o false (verdadero o falso). Debemos definir estos
valores sin ningn tipo de comillas. Este tipo de datos es bastante til a la hora de evaluar
expresiones lgicas o verificar condiciones particulares en nuestros programas.
Actividad 2.
Crea un fichero HTML que permita mostrar el siguiente texto en una ventana emergente, a travs de
la funcin alert(). Ten en cuenta que debes usar secuencias de escape para poder representar las
comillas simples y el salto de lnea.
I'm=I am
I don't=I do not
2.3 VARIABLES.
Las variables se pueden definir como zonas de la memoria de un ordenador que se identifican
con un nombre y en las cuales se almacenan ciertos datos. Las variables nos permiten manipular
y guardar datos que, en algunos casos, no sabremos su valor a priori. El desarrollo de un script
conlleva generalmente dos aspectos relacionados con las variables:
Declaracin de variables.
Inicializacin de variables.
El primer paso para utilizar una variable es definirla. En Javascript las variables se definen a travs
de la palabra clave var seguida por el nombre que queramos darle a la variable, tal y como se
muestra en el siguiente ejemplo:
var mi_variable_1;
var mi_variable_2;
Es posible declarar ms de una variable en una sola lnea de cdigo a travs de la separacin por
comas: var mi_variable_1,mi_variable_2;
En los ejemplos anteriores hemos declarado las variables, pero no les hemos asignado ningn valor.
El contenido de las variables estar indefinido (undefined) hasta que una parte del cdigo
almacene un valor en ellas.
Podemos realizar la asignacin de un valor a una variable de tres formas:
2.4 OPERADORES.
Hasta el momento hemos utilizado ejemplos con sentencias bastantes sencillas pero, a partir de
ahora, podremos construir diferentes expresiones en las que tendremos una coleccin de smbolos,
palabras o nmeros con los que podremos realizar clculos ms complejos. Es posible construir este
tipo de expresiones gracias al uso de los operadores de Javascript. Javascript utiliza cinco tipo de
operadores:
Operadores aritmticos
Operadores lgicos
Operadores de asignacin
Operadores de comparacin
Operadores condicionales.
Los elementos utilizados en una expresin y unidos a travs de un operador se definen como
operandos.
Los operadores aritmticos permiten realizar clculos elementales entre variables numricas. En la
tabla siguiente podemos ver las cuatro operaciones aritmticas
elementales:suma,resta,multiplicacin y divisin, adems de otros tres operadores menos
comunes:mdulo,incremento y decremento.
Operador
Nombre
Descripcin
Suma
Resta
Multiplicacin
Divisin
Mdulo
++
Incremento
--
Decremento
El operador mdulo divide un nmero entre otro y lo que devuelve es el resto de dicha divisin. Por
ejemplo, si quisiramos comprobar que el ao 2012 es un ao bisiesto (teniendo en cuenta algunas
excepciones, los aos bisiestos son divisibles por 4) debemos realizar la operacin siguiente:
var anyo=2012;
var bisiesto=2012 % 4;
Si la variable bisiesto almacena el valor 0, podemos afirmar que 2012 es un ao bisiesto.
Los operadores incremento y decremento permiten realizar una de las operaciones ms comunes en
los lenguajes de programacin, es decir, incrementar o decrementar un valor en una unidad. Es
posible utilizar estos operadores antes o despus de la variable, aunque su efecto es diferente en
ambos casos. Por ejemplo, el siguiente cdigo almacena el valor 2 en ambas variables
variable_1=1;
variable_2=++variable_1;
Mientras que en este otro ejemplo la primera variable contendr el valor 2 y la segunda 1:
variable_1=1;
variable_2=variable1++;
Los operadores lgicos tienen la utilidad de combinar o manipular diferentes expresiones lgicas
con el fin de evaluar si el resultado de esta combinacin es verdadero o falso. Generalmente, se
utiliza este tipo de operadores en el caso en que debamos tomar decisiones dentro de un programa.
Podemos ver los tres operadores lgicos que existen en la tabla siguiente:
Operador
Nombre
Descripcin
&&
And
||
Or
Not
Ejecuta la operacin booleana And sobre los valores. Devuelve true solo
si todos los valores son true. Devuelve false en caso contrario.
Adems del operador de asignacin igual (=), Javascript cuenta con otros operadores de asignacin
que tienen una caracterstica en comn con los operadores aritmticos de incremento y decremento.
Operador
Nombre
+=
Suma y asigna
-=
Resta y asigna
*=
Descripcin
/=
Divide y asigna
%=
Mdulo y asigna
Nombre
Descripcin
<
Menor que
<=
==
Igual
>
Mayor que
>=
!=
Diferente
Estrictamente igual
===
!==
Estrictamente
diferente
Existe otro tipo de operador un poco ms complejo, pero bastante til a la hora de tomar decisiones
en los programas de Javascript. Se trata del operador condicional. Con este operador podemos
indicarle al navegador que ejecute una accin en concreto despus de evaluar una expresin. El
operador condicional consta de tres partes:la primera es la expresin a evaluar, la segunda es la
accin a realizar si la expresin es verdadera, y la tercera parte es la accin a realizar si la expresin
es falsa.
Operador
?:
Nombre
Condicional
Descripcin
Si la expresin antes del operador es verdadera, se utiliza el primer
valor a la derecha. En caso contrario se utiliza el segundo valor a la
derecha.
Actividad 4. Por ejemplo, si queremos avisar al usuario que no se puede efectuar una divisin por
ceso, es posible hacerlo mediante un operador condicional:
<script type="text/javascript">
var dividendo=prompt ("Introduce el dividendo: ");
var divisor=prompt("Introduce el divisor: ");
var resultado;
divisor != 0 ? resultado=dividendo/divisor :
alert ("No es posible la divisin por cero");
alert ("El resultado es: " + resultado);
</script>
if (expresin) {
instrucciones
}
La expresin puede ser una comparacin o una expresin lgica que devuelve los valores true o
false. Las instrucciones son el cdigo que ejecutaremos si la expresin devuelve el valor true.
Javascript ignora las instrucciones en el caso de que la expresin devuelve valor false.
El uso de las llaves {} no es obligatorio en el caso de que ejecutemos una sola instruccin, en caso
contrario, s que es obligatorio su uso.
La segunda forma de utilizar la sentencia if es agregando la palabra clave else. De este modo
podemos ejecutar instrucciones en el caso en que la expresin devuelva el valor false. As es como
definimos una sentencia if-else:
if (expresin) {
instrucciones_si_true
} else {
instrucciones_si_false
}
La tercera forma de utilizar la sentencia if es mediante la sentencia if-else-if. De este modo, le
pedimos al navegador que evale una expresin, y si sta devuelve el valor false, el navegador
evaluar una nueva expresin. Si ninguna de las dos o ms expresiones utilizadas devuelve el valor
true, es posible utilizar un ltimo else, donde es posible escribir el cdigo que se ejecutar en este
caso. La estructura de la sentencia if-else-if es la siguiente:
if (expresin_1) {
instrucciones_1
} else if (expresin_2) {
instrucciones_2
} else {
instrucciones_else
}
En el caso de que debamos utilizar demasiadas sentencias del tipo else-if, es preferible utilizar la
sentencia switch, ya que facilita la lectura y el mantenimiento del cdigo.
Una vez que conozcamos y dominemos el uso de las sentencia if, ser posible escribir cdigo con
tomas de decisiones ms complejas a travs de if anidados.
Los if anidados nos permitirn solucionar problemas que se nos presentan con frecuencia, como por
ejemplo la toma de decisiones basadas en decisiones precedentes.
En algunos casos es necesario comparar el valor de una variable con algunos valores conocidos,
para estas situaciones Javascript proporciona la sentencia switch. En este sentencia se tiene una
expresin a evaluar y una serie de posibles valores de dicha expresin, llamados casos, en los que
se encuentran las instrucciones a ejecutar cuando coincidan el valor de la expresin y el valor de
cada caso. La sintaxis de esta sentencia es la siguiente:
switch (expresin) {
case valor1:
instrucciones_valor1;
break;
case valor2:
instrucciones_valor2;
break;
case valor3:
instrucciones_valor3;
break;
default:
instrucciones_default;
}
Cada caso termina con la palabra clave break. La utilidad de esta palabra clave es la de detener la
ejecucin del switch en el momento en que uno de los casos resulte verdadero. De este modo no
perdemos tiempo en evaluar los dems casos.
Las instrucciones que se encuentren dentro de la sentencia opcional default, se ejecutarn solo
cuando ninguno de los valores de cada caso coincida con el valor de la expresin.
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");
}
El bucle while consta de tres partes fundamentales:la palabra clave while, la expresin condicional
y las instrucciones que se ejecutan en el caso de que la expresin condicional sea verdadera.
Este bucle es el ms utilizado cuando no disponemos de informacin que nos indique el nmero de
veces que debemos repetir la iteracin del bucle. El navegador ejecutar una o ms instrucciones
continuamente hasta que la condicin deje de ser verdadera. Su sintaxis es la siguiente:
while (expresin) {
instrucciones
}
Una variacin del bucle while es del denominado do-while, su estructura es la siguiente:
do {
instrucciones
} while (expresin)
De este modo nos asegura que la ejecucin del bucle se lleve a cabo al menos una vez y solo al
final, se evala si se debe seguir ejecutando o no.
El bucle for permite que un navegador ejecute las instrucciones que se encuentren dentro del mismo
bucle hasta que la expresin condicional devuelva el valor false. Este tipo de bucles consta de cinco
partes:la palabra clave for, el valor inicial de la variable de control, la condicin basada en dicha
variable, el incremento o decremento de la variable y el cuerpo del bucle. Su sintaxis general es la
siguiente:
for (Valor_inicial;expresion_condicional;incremento_o_decremento_de_la_variable) {
cuerpo_del_bucle
}
Vamos un ejemplo que muestra en pantalla un valor que se incrementa en cada una de las diez
iteraciones del bucle:
for (i=0;i<10;i++) {
document.write ("El valor de la variable de control es : " + i + " <br>")
}
Actividad 5:
Crea el fichero actividad5.html que nos muestre la tabla del 5.
Actividad 6:
Crea el fichero actividad6.html vaco y aade el siguiente cdigo en Javascript en el cuerpo de la
pgina (entre las etiquetas <body> y </body>):
<script type="text/javascript">
var maxvalue=Number.MAX_VALUE;
var minvalue=Number.MIN_VALUE;
alert ("Max Value: " + maxvalue);
alert ("Min Value: " +minvalue);
alert ("Valor especial: " + maxvalue*2);
</script>
TEST DE CONOCIMIENTOS.
1. Qu navegador web actual incorpora un intrprete para cdigo Javascript?.
Firefox.
Safari
Chrome
Todos los anteriores
Un punto y coma.
La palabra clave end.
La etiqueta </script>.
Un punto y coma o un salto de lnea.
/ Comentario
*/ Comentario */
//Comentario
<!--Comentario-->
No existe un lmite
9.99x10 elevado a 308
1.7976931348623157x10 elevado a 308
Ninguno de los anteriores
Operadores
Operandos
Sumas
Incrementos
True
10 < 100
Falso
Verdadero