Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Javascript PDF
Javascript PDF
Bibliografa:
JavaScript. The Definitive Guide 2 OReilly.
Diseo de pginas web interactivas con
JavaScript 2 Ed. 2 Ra-Ma
Professional JavaScript 2 Wrox
Luis Marco Noviembre 2000
Rev. Abril 2006
Bibliografa recomendada
Dany Goodman
Editorial IDG Books
Professional JavaScript
David Flanagan
Editorial Oreilly
Varios autores
Editorial Wrox
Pure JavaScript
Editorial SAMS
Herramientas necesarias
Introduccin (I)
Introduccin (II)
Caractersticas
No tipado.
Basado en objetos.
JavaScript NO ES Java.
En la actualidad, pocos navegadores no disponen
de soporte de JavaScript.
Ao
Versin
1995
JavaScript 1.0
1996
1996
JavaScript 1.1
1997
JavaScript 1.2
1997
1998
JavaScript 1.3
1999
2000
JavaScript 1.3
2001
2001
JavaScript 1.5
2002
Capacidades de JavaScript
Etiqueta <SCRIPT>
Ejemplo:
<html><body>
<script> document.write("HOLA MUNDO); </script>
</body></html>
Esconder cdigo JS
Etiqueta <NOSCRIPT>
Comentarios en JS
Bloques de instrucciones
Terminacin de instrucciones
Nombres de identificadores(II)
Palabras reservadas de JS
abstract
abstract boolean
boolean
break
break
byte
byte
case
case
catch
catch
char
char
const
const
continue
continue
default
default
do
do
double
double
else
else
extends
extends false
false
final
final
finally
finally
float
float
for
for
function
function goto
goto
input
input
inin
instance
instanceofof interface
interface long
long
protected
protected
package
package private
private
implements
implements
native
native
new
new
null
null
static
static
super
super
return
return
short
short
throws
throws
transient
transient true
true
synchronized
synchronized this
this
throw
throw
var
var
val
val
with
with
while
while
int
int
public
public
switch
switch
class
class
try
try
Tipos de datos
1. Datos numricos.
2. Cadenas de texto.
3. Valores booleanos.
4. Valores nulos.
Valores numricos
Enteros
Octales: Empiezan con el dgito 0.
Hexadecimales: Empiezan con 0x 0X.
Coma flotante: La sintaxis es
[dgitos][.dgitos][(E|e)[(+|-)]dgitos]
Ej.:
3.14,
.333333333,
6.02e+23, 1.478223E-32
Significado
Number.MAX_VALUE
Number.MIN_VALUE
El menor nmero.
Number.POSITIVE_INFINITY (*)
Number.NEGATIVE_INFINITY (*)
Cadenas de texto
Operador suma +.
Propiedad length.
Obtener subcadenas:
La ltima ocurrencia:
Valores booleanos
Valores nulos
Valor Undefined
null vs undefined
Ejemplo:
var variableSinDefinir;
var tipo = typeof variableSinDefinir;
Sintaxis:
document.write (cadena);
Prctica
Caracteres escapados
Carcter
Carctervisible
visible
Caracter
Caracteranterior
anterior
Salto
de
pgina
Salto de pgina
Salto
Saltode
delnea
lnea
Retorno
Retornode
decarro
carro
Tabulador
Tabulador
Caracter
Caracter\\
Comilla
Comillasimple
simple
Comilla
Comilladoble
doble
Cdigo
de
Cdigo decaracter
caracterdel
deljuego
juegoLatinLatin1,1,en
octal
en octal
Cdigo
Cdigode
decaracter
caracterdel
deljuego
juegoLatinLatin1,1,en
hexadecimal.
en hexadecimal.
Cdigo
Cdigode
decaracter
caracterdel
deljuego
juego
Unicode,
en
hexadecimal.
Unicode, en hexadecimal.
Ejemplo de mbito
var cod-art = "110-Estantera";
function mostrar() {
var importe = 1500;
cod-art = "Sin existencias";
alert("El importe es: + importe);
alert("El cd-art.:" + cod-art);
}
alert("Ahora cd-art vale: + cod-art);
Operadores
1. Operadores aritmticos.
2. Operadores lgicos.
3. Operadores de comparacin.
4. Operador condicional.
5. Operadores de bit.
6. Operadores de asignacin.
7. Otros operadores.
Operadores aritmticos
Suma
Resta
Multiplicacin
Divisin
Mdulo
Incremento: Preincremento
y Posincremento
++
Decremento:
Predecremento y
Posdecremento
--
Negacin unaria
Operadores lgicos
Producto lgico OR
Suma lgica AND
Negacin lgica NOT
||
&&
!
+
NOTA: Si la parte izquierda de una condicin AND es falsa no
Operadores de comparacin
Igualdad
==
Desigualdad
!=
Identidad
===
No identidad
!==
Mayor que
>
Menor que
<
>=
<=
Reglas de igualdad
Operador condicional
Ejemplo ?:
Equivalente a:
var saludo="Hola ";
if (nombre != null)
saludo += nombre;
else
saludo += "ser annimo";
Operadores de bit
Operador OR
Operador XOR
Operador AND
&
Desplazamiento izq.
<<
Desplazamiento der.
>>
>>>
Negacin NOT
NOTA: Los operadores <<, >> y >>> mueven, bit a bit, el primer
Operadores de asignacin
El operador bsico de asignacin es =.
La sintaxis de los operadores de asignacin: a op= b;
Operador
Operador
+=
+=
-=
-=
*=
*=
/=
/=
%
%==
<<=
<<=
>>=
>>=
>>>=
>>>=
&=
&=
|=
|=
^=
^=
Ejem
Ejemplo
plo
aa +=
+= bb
aa -=
-= bb
aa *=
*= bb
aa /=
/= bb
aa %
%== bb
aa <<=
<<= bb
aa >>=
>>= bb
aa >>>=
>>>= bb
aa &=
&= bb
aa |=
|= bb
aa ^=
^= bb
Equivalente
Equivalente
aa == aa ++ bb
aa == aa --bb
aa == aa ** bb
aa == aa //bb
aa == aa %
% bb
aa == aa <<
<< bb
aa == aa >>
>> bb
aa == aa >>>
>>> bb
aa == aa && bb
aa == aa ||bb
aa == aa ^^ bb
Ejemplos:
Funciones
Definicin de funciones
Ejemplo de funcin
function elevar (num, exp) {
var resul = 1;
for (var i = 0; i < exp; i++)
resul *= num;
return resul;
}
Evento onclick()
Funcin eval()
Ejemplo:
eval(document.write(a+b));
Ejemplo:
document.calc.visor.value=5;
Prctica
Sentencia bsica if
Sintaxis:
if (expresin)
sentencia;
if (expresin) {
conjunto de sentencias;
}
if ( nombre == null )
alert ("Nombre vaco");
Sentencia if - else
Sintaxis:
if (expresin)
sentencia1;
else
sentencia2;
Ejemplo de switch
function convierte (x) {
switch (typeof x) {
case 'number':
return x.toString(16);
case 'string':
return + x + ;
case 'boolean':
return x.toString().toUpperCase();
default:
return x.toString();
}
Por
Por qu
qu en
en el
el ejemplo
ejemplo no
no existen
existen sentencias
sentencias break;
break; ??
}
Bucle while
Sintaxis:
while (expresin)
sentencia;
El bucle while se ejecutar siempre que la expresin
se evale a true.
Una iteracin infinita: while (true);
Ejemplos while
Postincremento
var contador = 0;
while (contador < 10)
document.write ((contador++) + "<br>");
0,
0,1,
1,2,
2,3,
3,4,
4,5,
5,6,
6,7,
7,8,
8,9,
9,
var contador = 0;
Preincremento
while (contador < 10)
document.write ((++contador) + "<br>");
1,
1,2,
2,3,
3,4,
4,5,
5,6,
6,7,
7,8,
8,9,
9,10,
10,
Bucle do / while
Ejemplo:
for (var cont = 0; cont < 10; cont++)
document.write (cont + <br>);
Bucle for / in
Etiquetas
Ejemplo:
inicio:
while (token != null) {
...
}
Sentencia break
Sintaxis:
break;
break etiqueta;
bucleExt:
bucleExt:
for
for(var
(vari i==0;0;i i<<10;
10;i++)
i++){{
bucleInt:
bucleInt:
for
for(var
(varj j==0;0;j j<<10;
10;j++)
j++){{
ifif(j(j>>3)3)break;
break;
ifif(i(i==
2)
== 2)break
breakbucleInt;
bucleInt;
ifif(i(i==4
==4) )break
breakbucleExt;
bucleExt;
document.write
("<br>Valores:
document.write ("<br>Valores: ++i i++" "" "++j);j);
}}
}}
document.write
document.write("<br>FINAL:
("<br>FINAL:" "++i i++" "" "++j);j);
Sentencia continue
Sintaxis:
continue;
continue etiqueta;
Usada slo en bucles while, for y for/in.
La sentencia continue provoca que la iteracin en
curso termine en el acto y comience el bucle con la
siguiente.
La sentencia vaca
Ejemplo:
//Inicializar un array
for (i = 0; i < a.length; a[i++] = 0) ;
Precaucin:
if ( a == 0 || b == 0 ) ;
alert ("la variable a o b tienen valor cero");
Prctica
Dilogos de ventana
Alertas
Confirmaciones
Entradas de usuario
Alertas: alert()
Ejemplo alert()
Confirmaciones: confirm()
Ejemplo confirm()
Devuelve true
(I)
Devuelve
false
Entradas: prompt()
Ejemplo prompt()
Entrada de datos
usuario
Valor inicial
Devolver null
Devolver la entrada de
datos
Anidamiento de funciones
Ejemplo:
Ejemplo de arguments
function max() {
var m=Number.NEGATIVE_INFINITY;
for (var i=0; i<arguments.length; i++)
if (arguments[i]>m) m=arguments[i];
return m;
//El mayor.
}
Arrays
Creacin de Arrays
En JS un array es un objeto.
Como tal se declaran con el operador new seguido
del constructor Array().
Sintaxis:
var a = new Array( [tamao | elementos] );
Constructor Array()
Inicializaciones de un Array
Acceso a elementos
Ejemplos:
valor = a[0];
a[1] *= 3.14;
a[++i]="Hola";
a[a[i]] = a[0];
a[MODELO]="130";
Arrays multidimensionales
Creacin multidimensional
Ejemplo:
var matriz = new Array([1, 2], [4, 5], [6, 7]);
split()
sort()
concat()
slice()
splice()
push()
pop()
unshift()
shift()
toString()
toSource()
Aplicados
Aplicadosalalobjeto
objetoarray:
array:
variable-array.metodo();
variable-array.metodo();
Mtodo join()
Mtodo split()
Mtodo sort()
Ejemplo:
var a = new Array(A, F, B);
a.sort() { A, B, F }
Mtodo reverse()
Ejemplo:
var a = new Array(A, F, B);
a.reverse() { F, B, A }
Mtodo concat()
Ejemplo:
var a = new Array (1, 2, 3);
var b=a.concat(new Array(4, 5))
b== { 1, 2, 3, 4, 5}
Mtodo slice()
Devuelve un subarray.
Ejemplo:
var a = new Array(1, 2, 3, 4, 5);
a.slice(0, 3) Devuelve { 1, 2, 3 }
a.slice(3) Devuelve { 4, 5 }
Mtodo splice()
Mtodos toString()/toSource()
Prctica
Consideraciones .js
JavaScript en URLs
Ejemplos URL:
<a href="javascript: alert('Hola Mundo');"> Saludo </a>
<a href="javascript: calculaTotal();"> Calcular el Total</a>
Ejecucin de programas JS
El objeto Window
Jerarqua de objetos
self,
self, window,
window,
parent,
parent, top
top
plugins
plugins [[ ]]
navigator
navigator
mimeTypes
mimeTypes [[ ]]
frames
frames [[ ]]
forms
forms [[ ]]
Window
Window
anchors
anchors [[ ]]
location
location
links
links [[ ]]
history
history
document
document
images
images [[ ]]
applets
applets [[ ]]
embeds
embeds [[ ]]
Familia de
Netscape
Navigator
elements
elements[ [] ]
array
arrayde
deobjetos
objetosde
de
Formulario
Formulario(Form):
(Form):
Button
Button
Checkbox
Checkbox
FileUpload
FileUpload
1.1
Hidden
Hidden
Password
Password
Radio
Radio
Select
Select
Submit
Submit
Text
Text
TextArea
TextArea
options
options [[ ]]
array
array de
de objetos
objetos
options
options
application/x-java-applet;version=1.2
application/x-java-applet;version=1.2
application/x-java-bean
application/x-java-bean
application/x-java-applet
application/x-java-applet
application/x-java-bean;version=1.1
application/x-java-bean;version=1.1
application/x-java-applet;version=1.1
application/x-java-applet;version=1.1
application/x-java-bean;version=1.1.1
application/x-java-bean;version=1.1.1
application/x-java-applet;version=1.1.1
application/x-java-applet;version=1.1.1
application/x-npebshp
application/x-npebshp
application/asx
application/asx
audio/x-rmf
audio/x-rmf
audio/rmf
audio/rmf
audio/nspaudio
audio/nspaudio
audio/x-nspaudio
audio/x-nspaudio
......
......
......
......
......
Nombrar objetos
Ejemplo:
self.document.forms[0] document.forms[0]
Significado
true si la ventana ha sido cerrada. false en caso contrario.
Texto que aparecer en la lnea de estado del navegador. Por defecto y
explcitamente.
document
frames [ ]
history
location
name
opener
Referencia al objeto ventana que ha abierto la actual. null si fue abierta por el
usuario.
parent
self
top
window
Significado
alert(),
confirm(),
prompt()
moveBy,
moveTo()
resizeBy(),
resizeTo()
scrollBy(),
scrollTo()
setInterval(),
clearInterval()
setTimeout(),
clearTimeout()
open(),
close()
Mtodo open()
(I)
Sintaxis:
var w = window.open ("pagina.html", "nombre", "propiedadesventana", valor-booleano);
Mtodo open()
(II)
Propiedades de ventana:
"width=nnn,heigth=mmm,status=yes,resizable=yes, ".
Propiedad
Accin
height
width
location
menubar
resizable
status
toolbar
menubar=yes,toolbar=yes,status=no,resizable=yes", true);
Mtodo open()
(III)
Mtodo close()
Referencia
Referencia aa travs
travs
de
de la
la variable
variable B.
B.
B
La
La ventana
ventana BB puede
puede
referirse
referirse aa la
la AA aa travs
travs
de
de la
la propiedad
propiedad opener.
opener.
Intervalos: setTimeout()
Intervalos: setInterval()
Prctica
El objeto navigator
Significado
appName
appVersion
userAgent
appCodeName
platform
NETSCAPE
NETSCAPENavigator
Navigator4.76
4.76
navigator.appName:
navigator.appName:Netscape
Netscape
navigator.appVersion:
navigator.appVersion:4.76
4.76[en]
[en](Windows
(WindowsNT
NT5.0;
5.0;U)
U)
navigator.userAgent:
Mozilla/4.76
[en]
(Windows
NT
navigator.userAgent: Mozilla/4.76 [en] (Windows NT5.0;
5.0;U)
U)
navigator.appCodeName:
Mozilla
navigator.appCodeName: Mozilla
navigator.platform:
navigator.platform:Win32
Win32
Arrays
Arraysasociativos
asociativos
Mtodos de navigator
El objeto screen
Documento html
Documento html
...
B
t1
t2
Soluciones
1. A travs de cookies.
2. A travs de applets Java / controles ActiveX.
3. A travs de variables de frames / frameset.
4. A travs de la URL.
Ejemplo:
if (condicion) document.URL=pagina2.html;
else document.URL=pagina3.html;
Prctica
Propiedad search
http://www.aeat.es?var1=330&var2=1P
document.location.search contendr la cadena:
?var1=330&var2=1P&
Propiedad referrer
Ejemplo:
1. open().
2. write().
3. close().
Opcional
Propiedad images [ ]
Propiedades de imgenes
Imgenes Off-Screen
Ejemplo de uso:
var imagenes=new Array(10);
for (var i=0; i<imgenes.length; i++) {
imagenes[i]=new Image();
imagenes[i].src=/imagenes/imagen"+ i + ".gif;
}
...
document.images[0].src=imagenes[3].src;
Efecto Rollover
<script>
var normal=new Image();
var vuelto=new Image();
normal.src=/imagenes/normal.gif";
vuelto.src=/imagenes/vuelto.gif";
function animar(numeroDeImagen) {
document.images[numeroDeImagen].src=vuelto.src;
}
function volver(numeroDeImagen) {
document.images[numeroDeImagen].src=normal.src;
}
</script>
<A HREF="javascript:void();" onmouseover="animar(0);
onmoseout="volver(0);">
<IMG src="images/normal.gif" name=0 border=0>
</A>
Ocurre cuando...
Carga interrumpida
Image.
onBlur
onChange
El elemento ha cambiado
Link y Button
onError
Image.
onFocus
onKeyDown
Tecla presionada
onKeyPress
Combinacin de onKeyDown+onKeyUp
Se libera la tecla
Document e Image.
onClick
onDblClick
onKeyUp
onLoad
Ocurre cuando...
onMouseDown
onMouseOut
onMouseOver
onReset
Form.
onResize
La ventana se redimensiona
Window.
onSubmit
Form.
onUnload
El documento se descarga
Document.
onMouseUp
Manejadores de eventos en JS
Propiedades de Form
Mtodos de Form
Ejemplos de uso:
document.f1.submit(); Provoca el envo del formulario.
document.f2.reset(); Provoca el borrado del formulario.
Eventos de Form
1. Evento onSubmit.
2. Eventos onReset.
Elementos de Form
Objeto
Button
Etiqueta HTML
Descripcin y Evento
<INPUT TYPE=button>
Checkbox
<INPUT TYPE=checkbox>
FileUpload
<INPUT TYPE=file>
Hidden
<INPUT TYPE=hidden>
Option
<OPTION>
<INPUT TYPE=password>
Radio
<INPUT TYPE=radio>
Reset
<INPUT TYPE=reset>
Select
<SELECT>
Submit
<INPUT TYPE=submit>
<INPUT TYPE=text>
<TEXTAREA>
Password
Text
Textarea
Propiedad form
Referencia this
Ejemplos:
this.form.elements[4];
<input type=button onClick="validaFormulario(this.form);">
Capas (DHTML)
Elemento <DIV>
La sintaxis bsica:
<DIV> ... </DIV>
Sintaxis:
<DIV id=nombre ... style=...>
</DIV>
Estilo display:
<div id=capa align=center style=display:inline>
...
</div>
display:none
Prctica
Sintaxis:
fechaSistema = new Date();
fechaSistema = new Date(ao, mes-1, da);
fechaSistema = new Date(ao, mes-1, da, hh, mm, ss);
Mtodo
Accin
getDate()
getDay()
getHours()
getMinutes()
getMonth()
getSeconds()
getTime()
Accin
getTimezoneOffset()
getYear() - Desaprobado
setDate(dd)
setHours(hh)
Establece la hora.
setMinutes(mm)
setMonth(mm)
setSeconds(ss)
setTime(nnnnnnnn)
Establece el ao.
toGMTString()
toLocaleString()
Mtodo
Accin
getFullYear()
El objeto Math()
Acceso a propiedades:
Propiedades
y Mtodos
Estticos
Math.propiedad
Acceso a mtodos:
Math.mtodo(param1, param2, ..., paramN);
Propiedad
Valor
LN2
LN10
LOG2E
Logaritmo en base 2 de e.
LOG10E
Logaritmo en base 10 de e.
PI
Nmero .
SQRT1_2
Raz cuadrada de .
SQRT2
Raz cuadrada de 2.
Accin
abs(n)
acos(n)
Calcula el arcocoseno de n.
asin(n)
Calcula el arcoseno de n.
atan(n)
Calcula la arcotangente de n.
ceil(n)
cos(n)
Calcula el coseno de n.
exp(n)
floor(n)
log(n)
max(x,y)
min(x,y)
Accin
pow(x,y)
random()
round(n)
sin(n)
Calcula el seno de n.
sqrt(n)
tan(n)
Calcula la tangente de n.
Netscape Navigator:
..\Netscape\Users\usuario\cookies.txt
Cookies: Caducidad
Cookies: Camino
Cookies: Entorno
ElElvalor
valorde
delas
lascookies
cookiesno
nopuede
puedecontener
contenercomas,
comas,puntos
puntosyycomas
comasooespacios
espacios
en
blanco.
Por
este
motivo
es
conveniente
aplicarle
al
valor
la
funcin
en blanco. Por este motivo es conveniente aplicarle al valor la funcin
escape(),
escape(),para
paraque
quecodifique
codifiqueestos
estossmbolos
smbolosyyse
sepueda
puedaalmacenar
almacenar
correctamente.
La
lectura
de
la
cookie
se
har
posteriormente
correctamente. La lectura de la cookie se har posteriormentecon
conlalafuncin
funcin
unescape().
unescape().
Prctica
Objetos - Definicin
Creacin de objetos
Enumeracin de propiedades
Ejemplo:
function listarPropiedades (objeto) {
var nombres="";
for (var i in objeto) nombres+=i+"\n";
alert(nombres);
}
Instanciar objetos
Ejemplo:
function persona (nombre, edad, sexo, auto) {
this.nombre=nombre;
this.edad=edad;
this.sexo=sexo;
this.auto=auto;
}
Ejemplo:
function persona (nombre, edad, sexo, auto) {
this.nombre=nombre;
this.edad=edad;
this.sexo=sexo;
this.auto=auto;
this.informacion=inforPersona;
}
function inforPersona(separador) {
return "Nombre: "+ this.nombre + separador +
"Edad: " + this.edad + separador +
"Sexo: " + this.sexo;
}
Prctica