Escolar Documentos
Profissional Documentos
Cultura Documentos
JavaScript
Basa su sintaxis en C
Mltiples frameworks
JavaScript NO es Java
JavaScript
Seguridad de JavaScript
JavaScript
Historia de JavaScript
Estandarizacin
Variantes
Microsoft: JScript
Firefox: JavaScript
Chrome: JavaScript
Opera: ECMAScript
AdobeFlash: ActionScript 3
JavaScript
JavaScript
<body>
<noscript>
<p>
EstapginarequiereJavaScriptparasucorrectofuncionamiento.
CompruebesiJavaScriptestdeshabilitadoenelnavegador.
</p>
</noscript>
<p>Textodeldocumento</p>
</body>
JavaScript
XHTML
<scriptlanguage="JavaScript" type="text/javascript"><![CDATA[
<!
...
//>]]></script>
HTML
<scriptlanguage="JavaScript" type="text/javascript">
<!
...
//>
</script>
el fin del comentario HTML va en un comentario de lnea JavaScript
Juan Pavn - UCM 2012-13
JavaScript
Ejercicio
<!DOCTYPEhtml PUBLIC"//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttpequiv="ContentType"content="text/html;charset=utf8"/>
<title>ElscriptHolaMundo</title>
<scripttype="text/javascript">
alert("HolaMundo!");
</script>
</head>
<body>
<noscript><p>EstapginarequiereJavaScriptparasucorrectofuncionamiento.
CompruebesiJavaScriptestdeshabilitadoenelnavegador.</p>
</noscript>
<p>Unscriptconlafrasemsfamosadelaprogramacin.</p>
</body>
</html>
Juan Pavn - UCM 2012-13
JavaScript
Ejercicio
<!DOCTYPEhtml PUBLIC"//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttpequiv="ContentType"content="text/html;charset=utf8"/>
<title>ElscriptHolaMundo</title>
</head>
<body>
<noscript><p>EstapginarequiereJavaScriptparasucorrectofuncionamiento.
CompruebesiJavaScriptestdeshabilitadoenelnavegador.</p>
</noscript>
<p>Unscriptconlafrasemsfamosadelaprogramacin.</p>
<script>document.write("HolaMundo!");</script>
</body>
</html>
JavaScript
JavaScript
Sintaxis de JavaScript
while (correcto)
While, WHILE (incorrectos)
return;
true;
JavaScript
11
Identificadores
Similar a C/Java:
JavaScript
12
Literales
Nmeros
Strings
JavaScript
13
Variables
JavaScript
14
Expresiones
Asignacin
Expresiones numricas
Expresiones lgicas
JavaScript
15
Expresiones
Expresiones de comparacin
Operadores relacionales: ==, !=, >, <, >=, <=, ===, !==
Conversin automtica de tipos en las comparaciones
JavaScript realiza conversiones automticas entre tipos para llevar a
cabo la comparacin cuando sea necesario
Si un operando es una cadena y el otro un nmero, se intenta convertir la
cadena a nmero. Si no se puede convertir la comparacin devuelve false
Si uno de los operandos es un booleano y el otro un nmero se convierte el
booleano a nmero (true 1, false 0)
JavaScript
16
Control de flujo
Instrucciones condicionales
if
if (condicin){
//Instrucciones
}
else {
//Instrucciones
}
//0,""ynull equivalenafalse
switch
switch (expresin){//Laexpresindevuelveunnumero,
//unvalorlgicoounstring
casevalor1:
//Instruccionescaso1
break; //paraacabarelswitch
casevalor2:
//Instruccionescaso2
break;
default: //opcional
//Instruccionessinosedieraningncaso
}
JavaScript
17
Ejercicio
El algoritmo es el siguiente:
Comprobar que el nmero est entre 0 y 99999999
Calcula el resto de la divisin entera del nmero de DNI y el nmero
23
Selecciona la letra dentro del array de letras siguiente:
var letras=['T','R','W','A','G','M','Y','F','P','D','X','B',
'N','J','Z','S','Q','V','H','L','C','K','E','T'];
Esto es, si el resto de la divisin es 0, la letra del DNI es la T, si el resto es 1
la letra es la R, etc.
JavaScript
18
Control de flujo
Bucles
for
for (inicializacin;condicin;actualizacin){
//Instrucciones
}
Ejemplo:
for (var i=0;i<array.length;i++){
procesa(array[i]);
}
for in
for (indice inarray ){
//Instrucciones
}
Ejemplo:
for (iinarray){
procesa(array[i]);
}
JavaScript
19
Control de flujo
Bucles
while
while(condicin){
//Instrucciones
}
Ejemplo:
while(true){
bucle_infinito();
}
do while
do{
//Instrucciones
}while(condicin)
JavaScript
20
Control de flujo
Excepciones: try..catch
try{
//Cdigo aejecutar
}
catch(err){
//Gestin deerrores
}
throw excepcion
JavaScript
21
Funciones
function ()
JavaScript
22
Funciones
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;
}
JavaScript
23
Locales
Globales
JavaScript
24
Objetos
JavaScript
25
Objetos
persona=newObject();
persona.nombre="Juan";
persona.id=12893;
O en una sola instruccin, indicando las propiedades entre llaves:
var persona={nombre:"Juan",id:12893}
O definir un constructor
function persona(nombre,id){
this.nombre=nombre;
this.id=id;
}
Y as crear varios objetos:
var juan=newpersona("Juan",12893);
var adela=newpersona("Adela",23782);
JavaScript
26
Objetos
JavaScript
27
Tipos de objetos
Objetos DOM
Core DOM
Node, NodeList, NameNodeMap, Document, Element, Attr
HTML DOM
Document, Events, Elements
Anchor, Area, Base, Body, Button, Form, Frame, Frameset, Image,
Input, Link, Meta, Object, Option, Select, Style, Table, Textarea
JavaScript
28
JavaScript
constructor
Devuelve la funcin que crea el objeto
objeto.constructor
Devolver algo as
function Boolean(){[native code]}
prototype
Es un constructor que permite aadir propiedades y mtodos al
objeto
Se aplicar a todos los objetos de ese tipo
Boolean.prototype.nuevaFuncion=function(){
//cdigo
}
Y los mtodos
JavaScript
30
Objeto Boolean
0
-0
null
""
false
undefined
NaN
JavaScript
31
Objeto Number
Propiedades:
Mtodos:
JavaScript
32
Objeto Math
Constantes matemticas
Math.E
Math.PI
Math.SQRT2: raz cuadrada de 2
Math.SQRT1_2: raz cuadrada de 1/2
Math.LN2
Math.LN10
Math.LOG2E
Math.LOG10E
Mtodos
round(decimal): redondeo
random(): devuelve un nmero aleatorio entre 0 y 1
max(x, y)
min(x, y)
JavaScript
33
Objetos String
JavaScript
34
Objeto Date
Mtodos:
JavaScript
35
Arrays
Coleccin de variables
Pueden ser todas del mismo tipo o cada una de un tipo diferente
var nombre_array =[valor1,valor2,...,valorN];
var sin_inicializar =newArray(5);
Se accede a los elementos con nombre_array[ndice]
ndice es un valor entre 0 y N-1
Propiedades y mtodos
JavaScript
36
Ejercicios
JavaScript
37
Objeto RegExp
JavaScript
38
Objeto Global
Propiedades globales
JavaScript
39
Objeto Global
Mtodos globales
JavaScript
40
JavaScript
Jerarqua de objetos:
window
objetos BOM
navigator
screen
forms[]
history
anchors[]
location
links[]
document
images[]
objetos DOM
Juan Pavn - UCM 2012-13
JavaScript
42
Objeto window
Propiedades
Mtodos
resizeTo(ancho, alto) cambia el tamao de la ventana
moveTo(x, y) mueve la ventana actual
JavaScript
43
Objeto window
toolbar[=yes|no]
location[=yes|no]
directories[=yes|no]
status[=yes|no]
menubar[=yes|no]
scrollbars[=yes|no]
resizable[=yes|no]
width=pixels
height=pixels
var nuevaVentana=window.open("http://www.ucm.es");
var otraVentana=window.open("","","width=200,height=100");
otraVentana.document.write("<p>Estaesotraventana</p>");
otraVentana.focus();
Y destruirlas
ventana.close()
JavaScript
44
Objeto window
Ventanas de dilogo
JavaScript
45
Ejercicios
JavaScript
46
Objeto screen
<p>Propiedadesdelapantalla:
<script>
document.write("Anchurayalturatotal:");
document.write(screen.width +"x"+screen.height);
document.write("<br>");
document.write("Anchurayalturadisponible:");
document.write(screen.availWidth +"x"+screen.availHeight);
document.write("<br>");
document.write("Profundidaddelcolor:");
document.write(screen.colorDepth);
document.write("<br>");
document.write("Resolucindelcolor:");
document.write(screen.pixelDepth);
</script>
</p>
Juan Pavn - UCM 2012-13
JavaScript
47
Objeto navigator
<divid="navegador"></div>
<script>
txt ="<h3>Propiedadesdelnavegador:</h3>";
txt+="<p>CodeName:"+navigator.appCodeName +"</p>";
txt+="<p>Name:"+navigator.appName +"</p>";
txt+="<p>Versin:"+navigator.appVersion +"</p>";
txt+="<p>Cookiespermitidos:"+navigator.cookieEnabled +"</p>";
txt+="<p>Plataforma:"+navigator.platform +"</p>";
txt+="<p>Useragent header:"+navigator.userAgent +"</p>";
txt+="<p>Lenguajedelsistema:"+navigator.systemLanguage +"</p>";
document.getElementById("navegador").innerHTML=txt;
</script>
JavaScript
48
Objeto history
<script>
functionatras(){
window.history.back()
}
</script>
JavaScript
49
Objeto location
Propiedades
Mtodos
JavaScript
50
Ejercicio
JavaScript
51
Cookies
Creacin de un cookie
functioncreaCookie (nombre,valor,dias){
var fechaExpiracion=newDate();
fechaExpiracion.setDate(fechaExpiracion.getDate()+dias);
var valorCookie=escape(valor)+((dias==null)?"":
";expira="+fechaExpiracion.toUTCString());
document.cookie=nombre +"="+valorCookie;
}
JavaScript
52
Cookies
Recuperacin de un cookie
functionrecuperaCookie(nombre){
var i,x,y,cookies=document.cookie.split(";");
for(i incookies){
x=cookies[i].substr(0,cookies[i].indexOf("="));
y=cookies[i].substr(cookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if(x==c_name){
returnunescape(y);
}
}
}
JavaScript
53
Cookies
functionusaCookie(){
var usuario=getCookie("nombreusuario");
if(usuario!=null&&usuario!=""){
alert("Bienvenido denuevo,"+usuario);
}
else{
usuario=prompt("Por favor,introduzca su nombre:","");
if(usuario!=null&&usuario!=""){
setCookie("nombreusuario",usuario,365);
}
}
}
JavaScript
54
Ejercicio
JavaScript
JavaScript
DOM
55
DOM
57
JavaScript
DOM
<!DOCTYPEhtmlPUBLIC"//W3C//DTDXHTML
1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1
transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta httpequiv="ContentType"
content="text/html;charset=iso88591"/>
<title>Ejemplo</title>
</head>
<body>
<p>Ejemplo depgina <em>sencilla</em></p>
</body>
</html>
Documento
XHTML
Elemento
HEAD
Elemento
META
Elemento
TITLE
Elemento
BODY
Elemento
P
Texto
Texto
Elemento
Ejemplo Ejemplo de pgina STRONG
Texto
sencilla
JavaScript
58
Tipos de nodos
Document nodo raz del que derivan todos los dems nodos del
rbol
Element representa cada una de las etiquetas
Es el nico nodo que puede contener atributos
Attr representa cada uno de los atributos de las etiquetas
Hay uno por cada par atributo=valor
Text contiene el texto encerrado por una etiqueta XHTML
Comment representa los comentarios incluidos en la pgina
JavaScript
59
Acceso a nodos
Acceso directo
JavaScript
60
Acceso a nodos
Acceder al nodo raz (document), y navegar por los hijos hasta el nodo
deseado
Se utilizan propiedades y mtodos de los nodos
Propiedades
childNodes NodeList (array) que contiene todos los hijos del nodo
firstChild y lastChild primer y ltimo hijo de un nodo
parentNode el padre del nodo
nextSibling y previousSibling nodos siguiente y anterior en el mismo
nivel
Mtodos
hasChildNodes()
JavaScript
61
appendChild()
insertBefore()
isSameNode()
removeChild()
replaceChild()
JavaScript
62
JavaScript
63
<divid="seccion">
<pid="p1">Primerprrafo.</p>
<pid="p2">Segundoprrafo.</p>
</div>
<script>
/*Secrea elnuevo prrafo,incluyendo unnodo para eltexto */
var nuevop=document.createElement("p");
var nodo=document.createTextNode("Unnuevo prrafo.");
nuevop.appendChild(nodo);
//elnuevo prrafo consu texto
/*Seaade elprrafo alfinaldelaseccin corresponsidente */
var elemento=document.getElementById("seccion");
elemento.appendChild(nuevop);
</script>
Juan Pavn - UCM 2012-13
JavaScript
64
Eliminacin de un elemento
<divid="seccion">
<pid="p1">Primerprrafo.</p>
<pid="p2">Segundoprrafo.</p>
</div>
<script>
var padre=document.getElementById("seccion");
var hijo=document.getElementById("p1");
padre.removeChild(hijo);
</script>
//Ms corto:
var hijo=document.getElementById("p1");
hijo.parentNode.removeChild(hijo);
Juan Pavn - UCM 2012-13
JavaScript
JavaScript
Eventos
65
Eventos
<html>
<head><title>Gestin deeventos</title>
<scripttype="text/javascript"><!
functionpaginaCargada(){
alert("Lapagina hasido cargada");
}
window.onload=paginaCargada;
//></script>
</head>
<body>
<form>
<inputtype="button"value="Hola"onClick="window.alert('Hola')"/>
</form>
</body>
</html>
Juan Pavn - UCM 2012-13
JavaScript
67
Eventos
JavaScript
68
Eventos
<!DOCTYPEhtmlPUBLIC"//W3C//DTDXHTML1.0Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1strict.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttpequiv="ContentType"content="text/html;charset=utf8"/>
<title>Gestin deeventos</title>
<scripttype="text/javascript"><!
window.onload =function(){
document.getElementById("primero").onclick=function(){cambiaTexto(this)};
}
functioncambiaTexto(id){id.innerHTML="Ole!";}
//></script>
</head>
<body>
<h1id="primero">Haz clickeneste texto</h1>
</body>
</html>
JavaScript
69
Eventos
Sobre elementos
Sobre formularios
JavaScript
70
Eventos
Teclado
Ratn
JavaScript
71
Eventos
JavaScript
72
Ejercicios
JavaScript
JavaScript
Formularios
73
Forms
JavaScript
75
Forms
type
Para los elementos de tipo <input> (text, button, checkbox, etc.)
coincide con el valor de su atributo type
Para las listas desplegables normales (elemento <select>) su valor
es select-one
Para las listas que permiten seleccionar varios elementos a la vez su
valor es select-multiple
Para los elementos de tipo <textarea>, el valor de type es textarea
form: referencia directa al formulario al que pertenece el elemento
document.getElementById("id_del_elemento").form
name: valor del atributo name de XHTML (no se puede modificar)
value: valor del atributo value de XHTML
Para los campos de texto (<input type="text"> y <textarea>)
proporciona el texto que ha escrito el usuario
<inputtype="text"id="linea"/>
var valor=document.getElementById("linea").value;
Para los botones se trata de sabe el texto del botn seleccionado:
JavaScript
76
Forms
JavaScript
77
Ejercicio
JavaScript
78
JavaScript
Libreras y frameworks
Libreras JavaScript
jQuery
Prototype
JavaScript
80
Libreras JavaScript
90.2%: JQuery
http://w3techs.com
8.1%:
6.1%:
5.1%:
4.7%:
2.5%:
MooTools
Prototype
ASP.NET Ajax
Script.aculo.us
YUI Library
JavaScript
81
Tecnologas de script
JavaScript
82
Depuracin de JavaScript
JavaScript
83
Bibliografa
http://librosweb.es/javascript/
http://www.w3schools.com/js/default.asp
JavaScript
84