360 likes | 721 Views
Javascript. CI-2413 Desarrollo de aplicaciones para Internet. Versiones de Javascript. NN 2.0 / IE 3.0 (Con errores y poco confiable) Javascript 1.0 NN 3.0 Javascript 1.1 NN 4.0 / IE 4.0 Javascript 1.2 (En IE conocido como JScript) NN 6.0 / IE 6.0 Javascript 1.5.
E N D
Javascript CI-2413 Desarrollo de aplicaciones para Internet
Versiones de Javascript • NN 2.0 / IE 3.0 (Con errores y poco confiable) • Javascript 1.0 • NN 3.0 • Javascript 1.1 • NN 4.0 / IE 4.0 • Javascript 1.2 (En IE conocido como JScript) • NN 6.0 / IE 6.0 • Javascript 1.5
Agregando el código al HTML • Ejemplo: • <script language="Javascript"> <!-- document.write("¡Hola mundo!"); // --> </script> • Ejemplo: • <script language="Javascript1.2">
Agregando el código al HTML • Ejemplo: • <script language="JavaScript" src="functions.js"></script> • La última norma de HTML disponible en http://www.w3.org/TR/html401/interact/scripts.html recomiendo utilizar: • <script type="text/javascript"></script>
Agregando el código al XHTML • Ejemplo: • <script type="text/javascript">//<![CDATA[alert("<Esto es compatible con XHTML>");//]]></script>
Gramática • Elementos: • Variables • Operadores • Expresiones • Declaraciones • Objetos • Los objetos son muy importantes, porque gracias a unos objetos predefinidos del lenguaje podemos acceder a las diferentes características de una página HTML. Esto se llama "Document Object Model". • Funciones y métodos
Variables y tipos de datos • Se crea una variable global nueva simplemente asignando un valor: • nuevaVariable = 5; • Sin embargo, dentro de las funciones si se desea una variable con alcance local se utiliza var: • function nuevaFuncion() { var ciclo=1; total=0; }
Variables y tipos de datos • Javascript no tiene chequeo fuerte de tipo. • Tipos • Números • Booleanos • Hileras • Objetos • Nulo • Indefinido • Los operadores pueden comportarse diferente dependiendo del tipo.
Operadores • Aritméticos • + Adición • - Sustracción • * Multiplicación • % Módulo • ++ Incremento unario • -- Decremento unario • - Negación unaria: devuelve la negación del operando.
Operadores • Comparación • == Igual a • != Diferente • > Mayor que • >= Mayor o igual que • < Menor que • <= Menor o igual que
Operadores • Booleanos • && Y • || O • ! No • Hileras • + Concatenación
Operadores • Asignación • = • +=,-=,*=,/= • &=,|= • Especiales • (condición) ? valorSi : valorNo • typeof Devuelve el tipo. • Expresiones regulares (JavaScript 1.2)
Estructuras de control • if ... else • if (condición) { declaraciones1; } else { declaraciones2; }
Estructuras de control • switch • switch (expresión) { case valor : declaración; break; case valor : declaración; break; ... default : declaración; }
Estructuras de control • for • for (declaraciónInicial; prueba; incremento) { declaraciones; }
Estructuras de control • do ... while • do { declaraciones; } while (condición);
Estructuras de control • while • while (condición) { declaraciones; }
Estructuras de control • break y continue funcionan para JavaScript como en otros lenguajes. • for in • for (variable in objeto) { declaraciones; }
Estructuras de control • with • with (objeto) { declaraciones; }
Comentarios • Se pueden utilizar comentarios de una línea o de varias: • // comentario de una línea • /* comentario que permite escribir en varias líneas */
Funciones • Sintaxis • function nombre(arg1,arg2,...) { statements; } • Se recomienda escribir las funciones en el encabezado HTML (<head></head>), ya que este se carga antes del resto del documento.
Objetos • Document Object Model • Es un modelo de objetos predefinidos. Esta jerarquía de objetos depende del navegador.
Objetos • Propiedades: • carro.fabricante = "Toyota" carro.modelo = "Camry" carro.anyo = "1990" document.write(carro.anyo); • O: • carro['fabricante'] = "Toyota" carro['modelo'] = "Camry" carro['anyo'] = "1990" document.write(carro['anyo']);
Objetos • Métodos: • window.close(); • Creación: • miPerro = new Object(); miPerro.nombre = "Scooby Doo"; • Asignación de métodos: • miPerro.Huir = Huir;
Objetos • Constructor: • function Perro(nombre) { this.nombre = nombre; } miPerro = new Perro("Scooby Doo");
Eventos • Para ver los posibles eventos de cada etiqueta HTML ver http://w3.org/TR/html401. • Para cada navegador en el sitio web del fabricante se pueden encontrar los eventos disponibles. • Sintaxis básica: • <etiqueta atributo1 atributo2 onNombreEvento="código javascript;">
Excepciones • Ejemplo: • try { ejecute este bloque}catch (error) { ejecute este bloque si hay error}
Excepciones • Ejemplo: • try { colores[2] = "rojo";}catch (e) { if (e instanceof TypeError) { alert(“Variable errónea o indefinida…"); }}
Excepciones • Tipos de excepciones: • EvalError – Se alcanza cuando la función eval() es utilizada en una manera incorrecta; • RangeError – Se alcanza cuando una variable numérica sobrepasa su valor máximo; • ReferenceError – Se alcanza cuando se utiliza una referencia inválida; • SyntaxError – Se alcanza cuando un error de sintáxis ocurre mientras se parsea código JavaScript; • TypeError – Se alcanza cuando el tipo de una variable no es el que se esperaba; • URIError – Se alcanza cuando las funciones encodeURI() o decodeURI() son utilizadas de una manera incorrecta;
Excepciones • Ejemplo: • try { colores[2] = "rojo";}catch (e) { alert(“Ocurrió un error. Nombre: " + e.name + ". Mensaje: " + e.message);}
Excepciones (finally) • Ejemplo: • try { ejecute este bloque}catch (error) { ejecute este bloque si hay error}finally { ejecute este bloque siempre}
Excepciones (throw) • Ejemplo: • if (document.forms[0].edad.valor > 99){ throw RangeError;}
Excepciones: (Error) • Ejemplo: • ErrorNombre = new Error (“El nombre de usuario del sistema no empareja con el usuario real."); • throw ErrorNombre;
Lecturas recomendadas • Norma ECMA Script • Netscape's JavaScript Guide • Netscape's JavaScript Documentation Library • Microsoft JScript Documentation • Microsoft Scripting TechnologiesM • Microsoft DHTML References • Microsoft DHTML Object Model