DWEC02
DWEC02
DWEC02
Contenido
1.- Fundamentos de javascript. .............................................................................................................. 1
1.1.- Comentarios en el cdigo. .......................................................................................................................2
1.2.- Variables. ................................................................................................................................................2
1.3.- Tipos de datos. ........................................................................................................................................3
1.3.1.- Conversiones de tipos de datos. ................................................................................................................................ 5
1.4.- Operadores. ............................................................................................................................................6
1.4.1.- Operadores de comparacin. ..................................................................................................................................... 6
1.4.2.- Operadores aritmticos. ............................................................................................................................................. 7
1.4.3.- Operadores de asignacin. ......................................................................................................................................... 8
1.4.4.- Operadores booleanos. .............................................................................................................................................. 9
1.4.5.- Operadores bit a bit. ................................................................................................................................................... 9
1.4.6.- Operadores de objeto. .............................................................................................................................................. 10
. (punto) .............................................................................................................................................................................................. 10
[] (corchetes para enumerar miembros de un objeto). ...................................................................................................................... 10
Delete (para eliminar un elemento de una coleccin). ...................................................................................................................... 10
In (para inspeccionar mtodos o propiedades de un objeto). ........................................................................................................... 11
instanceof (para comprobar si un objeto es una instancia de un objeto nativo de JavaScript). ....................................................... 11
1.4.7.- Operadores miscelneos. ......................................................................................................................................... 11
El operador coma , .............................................................................................................................................................................. 11
? : (operador condicional) ................................................................................................................................................................... 12
typeof (devuelve el tipo de valor de una variable o expresin). ........................................................................................................ 12
El lenguaje que vas a estudiar ahora se llama JavaScript, pero quizs habrs odo otros nombres que
te resulten similares como JScript (que es el nombre que le dio Microsoft a este lenguaje).
Microsoft le dio el nombre de JScript para evitar problemas relacionados con la marca, pero no pudo
evitar otros problemas surgidos por las incompatibilidades que su versin de JavaScript tena con
mltiples navegadores. Para evitar esas incompatibilidades, el W3C, dise el DOM (Modelo de
Objetos del Documento), que incorporaron las versiones de Internet Explorer 6, Netscape Navigator,
Opera 7 y Mozilla Firefox desde su primera versin.
A partir de 1997 este lenguaje se rige por un estndar denominado ECMA, que se encarga de
gestionar las especificaciones de este lenguaje de script (da igual el nombre que reciba). En el
documentoECMA-262 es dnde se detallan dichas especificaciones. Tanto JavaScript como JScript
son compatibles con el estndar ECMA-262.
JavaScript se dise con una sintaxis similar al lenguaje C y aunque adopta nombres y convenciones
del lenguaje Java, ste ltimo no tiene relacin con JavaScript ya que tienen semnticas y propsitos
diferentes.
JavaScript fue desarrollado originariamente por Brendan Eich, de Netscape, con el nombre de
Mocha, el cual se renombr posteriormente a LiveScript y qued finalmente como JavaScript.
Hoy en da JavaScript es una marca registrada de Oracle Corporation, y es usado con licencia por los
productos creados por Netscape Communications y entidades actuales, como la fundacinMozilla.
-1-
Diseo Web en Entorno Cliente DAW
Los comentarios son sentencias que el intrprete de JavaScript ignora. Sin embargo estas sentencias
permiten a los desarrolladores dejar notas sobre cmo funcionan las cosas en sus scripts.
Los comentarios ocupan espacio dentro de tu cdigo de JavaScript, por lo que cuando alguien se
descargue vuestro cdigo necesitar ms o menos tiempo, dependiendo del tamao de vuestro
fichero. Aunque sto pueda ser un problema, es muy recomendable el que documentes tu cdigo lo
mximo posible, ya que esto te proporcionar muchas ms ventajas que inconvenientes.
JavaScript permite dos estilos de comentarios. Un estilo consiste en dos barras inclinadas hacia la
derecha (sin espacios entre ellas), y es muy til para comentar una lnea sencilla. JavaScript ignorar
cualquier carcter a la derecha de esas barras inclinadas en la misma lnea, incluso si aparecen en el
medio de una lnea.
Para comentarios ms largos, por ejemplo de una seccin del documento, podemos emplear en lugar
de las dos barras inclinadas el /* para comenzar la seccin de comentarios, y */ para cerrar la
seccin de comentarios.
Por ejemplo:
/* sta es una seccin
de comentarios
en el cdigo de JavaScript */
O tambin:
/* ----------------------------------
funcin imprimir()
Imprime el listado de alumnos en orden alfabtico
-------------------------------------*/
function imprimir()
{
// Lneas de cdigo JavaScript
}
Sabas que usando comentarios podemos desactivar un bloque de cdigo para que JavaScript deje
de ejecutarlo sin tener que borrar nada en el cdigo?
Sabas adems, que los comentarios en JavaScript son muy tiles para dejar por ejemplo tu
informacin de contacto para que otros programadores contacten contigo?
1.2.- Variables.
La forma ms conveniente de trabajar con datos en un script, es asignando primeramente los datos a
una variable. Es incluso ms fcil pensar que una variable es un cajn que almacena informacin. El
tiempo que dicha informacin permanecer almacenada, depender de muchos factores. En el
momento que el navegador limpia la ventana o marco, cualquier variable conocida ser eliminada.
-2-
Diseo de Aplicaciones Web Tema 4
Dispones de dos maneras de crear variables en JavaScript: una forma es usar la palabra reservada var
seguida del nombre de la variable. Por ejemplo, para declarar una variable edad, el cdigo de
JavaScript ser:
var edad;
Otra forma consiste en crear la variable, y asignarle un valor directamente durante la creacin:
var edad = 38;
A la hora de dar nombres a las variables, tendremos que poner nombres que realmente describan el
contenido de la variable. No podremos usar palabras reservadas, ni smbolos de puntuacin en el
medio de la variable, ni la variable podr contener espacios en blanco. Los nombres de las variables
han de construirse con caracteres alfanumricos y el carcter subrayado ( _ ). No podremos utilizar
caracteres raros como el signo + , un espacio , % , $ , etc. en los nombres de variables, y estos nombres
no podrn comenzar con un nmero.
Si queremos nombrar variables con dos palabras, tendremos que separarlas con el smbolo "_" o bien
diferenciando las palabras con una mayscula, por ejemplo:
var mi_peso;
var miPeso; // Esta opcin es ms recomendable, ya que es ms cmoda de escribir.
Deberemos tener cuidado tambin en no utilizar nombres reservados como variables. Por ejemplo,
no podremos llamar a nuestra variable con el nombre de return o for .
El contener solamente este tipo de datos, simplifica mucho las tareas de programacin,
especialmente aquellas que abarcan tipos incompatibles entre nmeros.
-3-
Diseo Web en Entorno Cliente DAW
"Duda siempre de ti mismo, hasta que los datos no dejen lugar a dudas."
de BACH, Richard.
Para crear variables de tipo cadena, simplemente tenemos que poner el texto entre comillas. Si
tenemos una cadena que slo contiene caracteres numricos, para JavaScript eso ser una cadena,
independientemente del contenido que tenga. Dentro de las cadenas podemos usar caracteres de
escape (como saltos de lnea con \n , comillas dobles \ , tabuladores \t , etc.). Cuando sumamos
cadenas en JavaScript lo que hacemos es concatenar esas cadenas (poner una a continuacin de la
otra).
Los tipos de datos booleano, son un true o un false . Y se usan mucho para tomar decisiones. Los
nicos valores que podemos poner en las variables booleanas son true y false . Se muestra un
ejemplo de uso de una variable booleana dentro de una sentencia if , modificando la comparacin
usando == y === .
Existen otros tipos de datos especiales que son de tipo Objeto, por ejemplo los arrays . Un array es
una variable con un montn de casillas a las que se accede a travs de un ndice.
-4-
Diseo de Aplicaciones Web Tema 4
var miBooleano = true;
var falso = false;
if (niBooleano){
//alert (era true);
}else{
//alert(era false);
}
var booleano = (23===23);
//alerts(booleano)
Aunque los tipos de datos en JavaScript son muy sencillos, a veces te podrs encontrar con casos en
los que las operaciones no se realizan correctamente, y eso es debido a la conversin de tipos de
datos. JavaScript intenta realizar la mejor conversin cuando realiza esas operaciones, pero a veces
no es el tipo de conversin que a ti te interesara.
Si uno de esos nmeros est en formato de cadena de texto, JavaScript lo que har es intentar
convertir el otro nmero a una cadena y los concatenar, por ejemplo:
4 + "5" // resultado = "45"
Por ejemplo:
parseInt("34") // resultado = 34
parseInt("89.76") // resultado = 89
4 + 5 + parseInt("6") // resultado = 15
-5-
Diseo Web en Entorno Cliente DAW
En el segundo ejemplo podemos ver la gran potencia de la evaluacin de expresiones. Los parntesis
fuerzan la conversin del nmero a una cadena. Una cadena de texto en JavaScript tiene una
propiedad asociada con ella que es la longitud (length), la cul te devolver en este caso el nmero 4,
indicando que hay 4 caracteres en esa cadena "3400". La longitud de una cadena es un nmero, no
una cadena.
1.4.- Operadores.
JavaScript es un lenguaje rico en operadores: smbolos y palabras que realizan operaciones sobre uno
o varios valores, para obtener un nuevo valor.
Cualquier valor sobre el cual se realiza una accin (indicada por el operador), se denomina un
operando. Una expresin puede contener un operando y un operador (denominado operador
unario), como por ejemplo en b++ , o bien dos operandos, separados por un operador (denominado
operador binario), como por ejemplo en a + b .
Categoras de operadores en JavaScript
Tipo Qu realizan
Comparan los valores de 2 operandos, devolviendo un resultado de true o false (se
usan extensivamente en sentencias condicionales como if... else y en
Comparacin.
instrucciones loop ).
== != === !== > >= < <=
Unen dos operandos para producir un nico valor que es el resultado de una
Aritmticos. operacin aritmtica u otra operacin sobre ambos operandos.
+ - * / % ++ - - +valor -valor
Asigna el valor a la derecha de la expresin a la variable que est a la izquierda.
Asignacin. = += -= *= /= %= <<= >= >>= >>>= &= |= = []
Realizan operaciones booleanas aritmticas sobre uno o dos operandos booleanos.
Boolean. && || !
Realizan operaciones aritmticas o de desplazamiento de columna en las
Bit a Bit. representaciones binarias de dos operandos.
& | << >> >>>
Ayudan a los scripts a evaluar la herencia y capacidades de un objeto particular
Objeto. antes de que tengamos que invocar al objeto y sus propiedades o mtodos.
. [] () delete in instanceOf new this
Operadores que tienen un comportamiento especial.
Miscelneos. , ?: typeof void
Operadores. http://www.htmlpoint.com/javascript/corso/js_30.htm
-6-
Diseo de Aplicaciones Web Tema 4
En valores numricos, los resultados seran los mismos que obtendramos con clculos algebraicos.
Por ejemplo:
30 == 30 // true
30 == 30.0 // true
5 != 8 // true
9 > 13 // false
7.29 <= 7.28 // false
Para poder comparar cadenas, JavaScript convierte cada carcter de la cadena de un string, en su
correspondiente valor ASCII. Cada letra, comenzando con la primera del operando de la izquierda, se
compara con su correspondiente letra en el operando de la derecha. Los valores ASCII de las letras
maysculas, son ms pequeos que sus correspondientes en minscula, por esa razn "Marta" no es
mayor que "marta". En JavaScript hay que tener muy en cuenta la sensibilidad a maysculas y
minsculas.
Los operadores === y !== comparan tanto el dato como el tipo de dato. El operador === slo
devolver true , cuando los dos operandos son del mismo tipo de datos (por ejemplo ambos son
nmeros) y tienen el mismo valor.
-7-
Diseo Web en Entorno Cliente DAW
Otros ejemplos:
var x = 2;
var y = 8;
var z = -x; // z es igual a -2, pero x sigue siendo igual a 2.
z = - (x + y); // z es igual a -10, x es igual a 2 e y es igual a 8.
z = -x + y; // z es igual a 6, pero x sigue siendo igual a 2 e y igual a 8.
Operadores. http://www.w3schools.com/js/js_operators.asp
-8-
Diseo de Aplicaciones Web Tema 4
Debido a que parte de la programacin tiene un gran componente de lgica, es por ello, que los
operadores booleanos juegan un gran papel.
Los operadores booleanos te van a permitir evaluar expresiones, devolviendo como resultado true
(verdadero) o false (falso).
Operadores de boolean en JavaScript
Sintaxis Nombre Operandos Resultados
&& AND. Boolean. Boolean.
|| OR. Boolean. Boolean.
! Not. Boolean. Boolean.
Ejemplos:
!true //
resultado = false
!(10 > 5) // resultado = false
!(10 < 5) // resultado = true
!("gato" == "pato") // resultado = true
Ejemplos:
5 > 1 || 50 > 10 // resultado = true
5 > 1 || 50 < 10 // resultado = true
5 < 1 || 50 > 10 // resultado = true
5 < 1 || 50 < 10 // resultado = false
Para los programadores de scripts, las operaciones bit a bit suelen ser un tema avanzado. A menos
que t tengas que gestionar procesos externos en aplicaciones del lado del servidor, o la conexin
con applets de Java, es raro que tengas que usar este tipo de operadores.
-9-
Diseo Web en Entorno Cliente DAW
Los operandos numricos, pueden aparecer en JavaScript en cualquiera de los tres formatos posibles
(decimal, octal o hexadecimal). Tan pronto como el operador tenga un operando, su valor se
convertir a representacin binaria (32 bits de longitud). Las tres primeras operaciones binarias bit a
bit que podemos realizar sonAND, OR y XOR y los resultados de comparar bit a bit sern:
Bit a bit AND: 1 si ambos dgitos son 1.
Bit a bit OR: 1 si cualquiera de los dos dgitos es 1.
Bit a bit XOR: 1 si slo un dgito es 1.
Por ejemplo:
4 << 2 // resultado = 16
La razn de este resultado es que el nmero decimal 4 en binario es 00000100. El operador << indica a
JavaScript que desplace todos los dgitos dos lugares hacia la izquierda, dando como resultado en
binario 00010000 , que convertido a decimal te dar el valor 16.
El siguiente grupo de operadores se relaciona directamente con objetos y tipos de datos. La mayor
parte de ellos fueron implementados a partir de las primeras versiones de JavaScript, por lo que
puede haber algn tipo de incompatibilidad con navegadores antiguos.
. (punto)
El operador punto, indica que el objeto a su izquierda tiene o contiene el recurso a su derecha, como
por ejemplo: objeto.propiedad y objeto.mtodo() .
Ejemplo con un objeto nativo de JavaScript:
var s = new String('rafa');
var longitud = s.length;
var pos = s.indexOf("fa"); // resultado: pos = 2
- 10 -
Diseo de Aplicaciones Web Tema 4
var oceanos = new Array("Atlantico", "Pacifico", "Indico","Artico");
Podramos hacer:
delete oceanos[2];
sto eliminara el tercer elemento del array ("Indico"), pero la longitud del array no cambiara. Si
intentamos referenciar esa posicin oceanos[2] obtendramos undefined.
Ejemplo:
a = new Array(1,2,3);
a instanceof Array; // devolver true.
new (para acceder a los constructores de objetos incorporados en el ncleo de JavaScript).
Ejemplo:
var hoy = new Date();
// crear el objeto hoy de tipo Date() empleando el constructor por defecto de dicho objeto.
this (para hacer referencia al propio objeto en el que estamos localizados).
Ejemplo:
nombre.onchange = validateInput;
function validateInput(evt)
{
var valorDeInput = this.value;
// Este this hace referencia al objeto nombre que estamos validando.
}
El operador coma ,
Este operador, indica una serie de expresiones que van a ser evaluadas en secuencia, de izquierda a
derecha. La mayor parte de las veces, este operador se usa para combinar mltiples declaraciones e
inicializaciones de variables en una nica lnea.
Ejemplo:
var nombre, direccion, apellidos, edad;
Otra situacin en la que podemos usar este operador coma, es dentro de la expresin loop . En el
siguiente ejemplo inicializamos dos variables de tipo contador, y las incrementamos en diferentes
porcentajes. Cuando comienza el bucle, ambas variables se inicializan a 0 y a cada paso del bucle una
de ellas se incrementa en 1, mientras que la otra se incrementa en 10.
for (var i=0, j=0 ; i < 125; i++, j+10)
{
// ms instrucciones aqu dentro
}
Nota: no confundir la coma , con el delimitador de parmetros " ; " en la instruccin for .
- 11 -
Diseo Web en Entorno Cliente DAW
? : (operador condicional)
Este operador condicional es la forma reducida de la expresin if . else .
Ejemplo:
var a,b;
a = 3; b = 5;
var h = a > b ? a : b; // a h se le asignar el valor 5;
Ejemplo:
if (typeof miVariable == "number")
{
miVariable = parseInt(miVariable);
}
En las siguientes secciones, vers cmo puedes ejecutar unas u otras instrucciones, dependiendo de
ciertas condiciones, y cmo puedes repetir una o varias instrucciones, las veces que te hagan falta.
En los lenguajes de programacin, las instrucciones que te permiten controlar las decisiones y bucles
de ejecucin, se denominan "Estructuras de Control". Una estructura de control, dirige el flujo de
ejecucin a travs de una secuencia de instrucciones, basadas en decisiones simples y en otros
factores.
- 12 -
Diseo de Aplicaciones Web Tema 4
Una parte muy importante de una estructura de control es la "condicin". Cada condicin es una
expresin que se evala a true o false .
En JavaScript tenemos varias estructuras de control, para las diferentes situaciones que te puedas
encontrar durante la programacin. Tres de las estructuras de control ms comunes son:
construcciones if, construcciones if...else y los bucles .
Construccin if
La decisin ms simple que podemos tomar en un programa, es la de seguir una rama determinada si
una determinada condicin es true .
Sintaxis:
if (condicin) // entre parntesis ir la condicin que se evaluar a true o false.
{
// instrucciones a ejecutar si se cumple la condicin
}
Ejemplo:
if (miEdad >30)
{
alert("Ya eres una persona adulta");
}
Construccin if else
En este tipo de construccin, podemos gestionar que haremos cuando se cumpla y cuando no se
cumpla una determinada condicin.
Sintaxis:
if (condicin) // entre parntesis ir la condicin que se evaluar a true o false.
{
// instrucciones a ejecutar si se cumple la condicin
}
else
{
// instrucciones a ejecutar si no se cumple la condicin
}
Ejemplo:
if (miEdad >30)
{
alert("Ya eres una persona adulta.");
}
else
{
alert("Eres una persona joven.");
}
1.5.2.- Bucles.
Los bucles son estructuras repetitivas, que se ejecutarn un nmero de veces fijado expresamente, o
que depender de si se cumple una determinada condicin.
Bucle for.
Este tipo de bucle te deja repetir un bloque de instrucciones un nmero limitado de veces.
Sintaxis:
for (expresin inicial; condicin; incremento)
{
// Instrucciones a ejecutar dentro del bucle.
- 13 -
Diseo Web en Entorno Cliente DAW
}
Ejemplo:
for (var i=1; i<=20; i++)
{
// instrucciones que se ejecutarn 20 veces.
}
Bucle while().
Este tipo de bucles se utilizan cuando queremos repetir la ejecucin de unas sentencias un nmero
indefinido de veces, siempre que se cumpla una condicin. Es ms sencillo de comprender que el
bucle FOR , ya que no incorpora en la misma lnea la inicializacin de las variables, su condicin para
seguir ejecutndose y su actualizacin. Slo se indica, como veremos a continuacin, la condicin
que se tiene que cumplir para que se realice una iteracin o repeticin.
Sintaxis:
while (condicin)
{
// Instrucciones a ejecutar dentro del bucle.
}
Ejemplo:
var i=0;
while (i <=10)
{
// Instrucciones a ejecutar dentro del bucle hasta que i sea mayor que 10 y no se cumpla
la condicin.
i++;
}
Bucle do while().
El tipo de bucle do...while es la ltima de las estructuras para implementar repeticiones de las que
dispone JavaScript, y es una variacin del bucle while() visto anteriormente. Se utiliza generalmente,
cuando no sabemos el nmero de veces que se habr de ejecutar el bucle. Es prcticamente igual
que el bucle while() , con la diferencia, de que sabemos seguro que el bucle por lo menos se
ejecutar una vez.
Sintaxis:
do {
// Instrucciones a ejecutar dentro del bucle.
}while (condicin);
Ejemplo:
var a = 1;
do{
alert("El valor de a es: "+a); // Mostrar esta alerta 2 veces.
a++;
}while (a<3);
Simplemente copia el cdigo, pgalo en tu editor favorito y guarda el archivo con la extensin .html
Para probar la aplicacin haz doble click en el fichero .html y visualzalo con tu navegador.
- 14 -
Diseo de Aplicaciones Web Tema 4
</head>
<body>
<h2>Cdigo fuente de un ejemplo bsico con JavaScript
</h2>
<script type="text/javascript">
// Definimos variables.
var nombre, apellidos, edad, hermanos;
nombre="Rafa";
apellidos="Martinez Daz";
edad=38;
hermanos=3;
- 15 -