Está en la página 1de 28

UNIVERSIDAD TÉCNICA

DE MANABÍ
Ingeniería y desarrollo
de aplicaciones
web
Unidad 2/Clase
Computación en el cliente
Elementos de JavaScript

Ing. Tatiana Cobeña M. MEng.


JavaScript y los navegadores
 JavaScript y los navegadores
 Cada navegador acepta una versión de JavaScript ligeramente diferente, que es un dialecto de
ECMAScript o no acepta ningún lenguaje de script en función del motor que utiliza.

¿ SOLUCIÓN ?
¡ No existe … !

 Soluciones parciales
 Debemos probar siempre un número razonable de navegadores.
 Podemos incluir código para detectar el navegador y su versión.
 Utilizar APIs implementadas de forma independiente de cada navegador como jQuery
Generalidades de JavaScript
Lenguaje Orientado a Objetos sin clases ni herencia
 Lenguaje Orientado a Objetos basado en prototipos
 Tiene un objeto denominado “Object” a partir del cual por clonación se obtienen los demás objetos.
 Sólo se parece a Java en aspectos sintácticos, pero no en su semántica
 Interpretado
 Lenguaje dinámico. Los tipos se infieren en tiempo de ejecución.
 Tiene objetos predefinidos
 Window
 Location
 History
 Document
 Forms

 Anchors

 String
 Math
 Date
 Navigator
 Se pueden definir objetos por el programador
 El lenguaje también soporta características de los lenguajes funcionales
 Hay gran cantidad de API’s (Application Programming Interface) desarrolladas por terceros.
Elementos de JavaScript
Elementos básicos de JavaScript
 – Objetos
 – Expresiones
 – Estructuras de control
 – Funciones
 – Arrays
 – Eventos
 • Elementos de una página HTML pueden causar un evento que ejecutará una acción
 – Esa acción se ejecutará a través de una serie de sentencias JavaScript
 – API’s (jQuery, API de HTML 5, …)
La etiqueta <script> </script>
La etiqueta <script> </script>
 Sintaxis <script type="text/javascript">
//instrucciones JavaScript
</script>

 ¿Dónde se colocan los scripts?


 en general, dentro de <head> ... </head>
 si genera una salida, dentro de <body> ... </body>
 si hace referencia a un elemento HTML, después de dicho elemento en algunos casos, en los
atributos de algunas etiquetas (eventos)
 en un archivo externo

<script type="text/javascript" src="fuente.js"></script>


Objeto document
 Representa el documento HTML en JavaScript

 Este es uno de los objetos predefinidos

 Contiene propiedades y métodos


 Propiedades: anchors, lastModified, location,…
 Métodos: clear(), close(), write(),…

 document.write() es una llamada al método write() del objeto document que representa el
contenido HTML.

 Se le pasa como argumento la cadena de texto a escribir en HTML en este caso


"<h1>¡Hola a todos!</h1>"
 Para navegadores que no aceptan JavaScript resulta aconsejable escribir los scripts entre
comentarios

<script language=“JavaScript” type=“text/javascript”>


<!--
...instrucciones JavaScript entre comentarios HTML...
-->
</script>

 También puede usarse las etiquetas <noscript> y </noscript>

<noscript>
Su página no acepta JavaScript. Vea
<a href=“no_JavaScript.html”>esta página</a>
</noscript>
Objetos predefinidos
 JavaScript es sensible a mayúsculas/minúsculas (“case sensitive”). Es decir no es lo mismo una letra
minúscula que una mayúscula.

 Objetos predefinidos en JavaScript


 String: cada vez que se asigna una cadena de caracteres a una variable, se crea un objeto String
 Math: se usa para efectuar cálculos matemáticos – Date: para el manejo de fechas y horas
 Array: almacena un conjunto de valores en un vector o matriz
 Boolean: almacena “true” o “false”.
 navigator: informa sobre el navegador que se está usando.
 document: es el documento HTML y tiene asociados elementos del documento (link, ancla,
formulario, …).

 También puede haber objetos definidos por el usuario


Métodos comunes
Algunos métodos comunes de los objetos predefinidos
 String:  Array:
 length(): longitud del string  sort(): ordena los elementos
 replace(): reemplaza un texto por otro  concat(): concatena dos arrays
 ToUpperCase ():pasa a mayúsculas

 Date:
 getDate(): Devuelve la fecha  Math
 round(): redondeo
 getFullYear(): Devuelve el año.
 max(), min(): valores máximo y
 getMonth(): Devuelve el mes entre 0 y 11. mínimo
 getDay(): Devuelve el día de la semana.  sin(): función seno()
 getHours(): Devuelve la hora  PI: constante pi=3,141592653589793
 getMinutes(): Devuelve el minuto
 getSeconds(): Devuelve los segundos
Variables
 Declaración y nombres de variables
 Los nombres son sensibles a mayúsculas/minúsculas (case sensitive).
 Las variables son globales a todo el programa, excepto las que se declaran con “var” dentro de
funciones.
 Deben comenzar por una letra o guión bajo. No deben coincidir con las palabras reservadas de
JavaScript.
 Se podrían definir como variables:
Nombre
_Opción15
mes3
 Declaración:
 Asignándole un valor: x = 42
 Con la palabra reservada “var”: var x
 O bien ambos: var x = 42
Comentarios
 Comentarios en JavaScript: pueden ser de dos tipos
Una línea:
// comentario de una línea
Varias líneas:
/*
comentario de varias líneas
*/

 Es opcional poner punto y coma (“;”) al finalizar las sentencias. Se puede poner o no. Aunque es
aconsejable.
Ejemplo de String
 Se declara la variable nombre que es global
 –Se utiliza para escribirla en el documento HTML
<html>
<body>
<script type="text/javascript">
var nombre = "Juan Manuel Cueva Lovelle“
document.write(nombre)
document.write("<h1>"+nombre+"</h1>")
</script>
<p>Este ejemplo define un objeto String y lo muestra</p>
<ol>
<li>Directamente</li>
<li>Como nivel h1</li>
</ol>
</body>
</html>
Objeto Math
<script type="text/javascript">
var pi = Math.PI
var e = Math.E
document.write("<h1>Pi="+pi+"</h1>")
document.write("<h2>Seno(Pi/4)="+Math.sin(pi/4.0)+"</h2>")
document.write("<h2>Coseno(Pi/4)="+Math.cos(pi/4.0)+"</h2>")
document.write("<h2>Tangente(Pi/4)="+Math.tan(pi/4.0)+"</h2>")
document.write("<h2>ArcoSeno(1)="+Math.asin(1)+"</h2>")
document.write("<h2>ArcoCoseno(1)="+Math.acos(1)+"</h2>")
document.write("<h2>ArcoTangente(1)="+Math.atan(1)+"</h2>")
document.write("<h1>e="+e+"</h1>")
document.write("<h2>log(e)="+Math.log(e)+"</h2>")
document.write("<h2>exp(1)="+Math.exp(1)+"</h2>")
document.write("<h2>pow(e,1)="+Math.pow(e,1)+"</h2>")
document.write("<h1>0<= valor aleatorio <1
="+Math.random()+"</h1>")
</script>

http://di002.edv.uniovi.es/~cueva/JavaScript/18Math.html
Bucles
 Bucles o sentencias repetitivas. Son similares al lenguaje C. Excepto for-in que es similar a
Java o C#.

While Do … while

while (condición) { do {
//código //código
} }
while (condición)

For For in

for (inicialización; condición; incremento) { for (variable in object) {


//código //código
} }
Bucle while
Manejo de números enteros y bucle while
 • También se usa el operador “+” para concatenar y el operador “++” para incrementar en una
unidad.

<script type="text/javascript">
//No son necesarios obligatoriamente los puntos y comas
var i = 0
while (i <= 5)
{
document.write("<p> El valor de i=" + i +"</p>")
i++
}
</script>
if y switch
 Sentencias alternativa y multi-alternativa. Son similares al lenguaje C

if (condición){ switch (expresion){


//código para condición = true case etiqueta1:
} //código si la expresión = etiqueta1
else{ break
//código para condición = false case etiqueta2:
} //código si la expresión = etiqueta2
break
default:
//código si la expresión no es ninguna de las
//anteriores
}
Operadores

 Son similares al lenguaje C. Excepto los operadores de cierre y de acceso a propiedades de los
objetos
 La precedencia de los operadores es la misma que la del lenguaje C.
 Clasificación y enumeración de los operadores
 Aritméticos: +, -, *, /, %, ++, --
 Asignación: =, +=, -=, *=, /=, %=
 Comparación: ==, !=, >, <, >=, <=
 Lógicos: &&, ||, !
 Cierre: ()
 Acceso a propiedades: . , [ ]
 Constructor de objetos: new
Objeto navigator
Obtener características del navegador
<script type="text/javascript">
var browser = navigator.appName
var versionCompleta = navigator.appVersion
var version=parseFloat(versionCompleta)
document.write("<p> Nombre del navegador: "+ browser + "</p>" );
document.write(“<p> Versión del navegador: "+ version + " o superior</p>");
document.write("Detalle del navegador: "+ versionCompleta + "</p>");
</script>
Propiedades
Objetos y propiedades
 Podemos acceder a las propiedades de un objeto:
nombreObjeto.nombrePropiedad
 Las propiedades se definen asignándoles un valor
Ejemplo:
 Dado el objeto miCoche, definimos las propiedades marca, modelo y año como sigue:
 Se puede usar el operador punto (.) o el operador corchete ([ ]).

miCoche.marca = “Ford”; // miCoche[“marca”] = “Ford”


miCoche.modelo = “Focus”; // miCoche[“modelo”] = “Focus”
miCoche.año = 2000; // miCoche[“año”] = 2000
Funciones
 Sintaxis de la construcción de una función
function mifunción(parámetro-1,parámetro-2,…)
{
//Código
}
 Se puede usar la palabra reservada “return” para devolver el control a quién llamó la
función. Pero no hay que indicar nada en la declaración de la función.
 Una función puede tener varios “return”.
 Las funciones pueden ser recursivas
 Una función puede pasarse como parámetro de otra función
 Una función puede devolver como resultado otra función
prompt( )

 Solicita una entrada por teclado


 Puede tener un valor por defecto. En el ejemplo del factorial ese valor es “0”
 También tiene un mensaje para explicar lo que se solicita por teclado
alert ( )

 Envía un mensaje de alerta al navegador.


 El mensaje es un String.
 Se usa el operador “+” para concatenar y para transformar todos los elementos a un String.
Nuevos objetos
 El programador puede crear nuevos objetos
 Es posible definir nuevos objetos de varias formas diferentes:

 Mediante inicialización de objetos. Dando el valor inicial del mismo por medio de la
enumeración de sus propiedades y métodos.
 Mediante una función constructora y el operador “new”
 Mediante la creación de una instancia del objeto genérico Object usando el operador
new. Posteriormente se definen las propiedades y métodos del nuevo objeto.
Inicialización de objetos
Consiste en asignarle a una variable un literal de objeto:
 nomObj = { prop1: val1, prop2: val2, ..., propN: valN }
donde
nomObj es el nombre del nuevo objeto

prop1,...,propN son identificadores que representan las propiedades del objeto

val1,...,valN son los valores asignados a cada propiedad del objeto

Ejemplo:

personaObj={nombre:"Juan Manuel", apellidos:"Cueva Lovelle", edad:49, colorOjos="verdes"}

 Si no vamos a volver a necesitar el objeto, no es necesario asignarle un nombre. Puede haber objetos anónimos.
 Pero JavaScript debe interpretar el objeto cada vez que aparezca una referencia al mismo en el código (lento...)

<script type="text/javascript">
personaObj={nombre:"Juan Manuel", apellidos:"Cueva Lovelle", edad:49, colorOjos:"verdes"}
document.write(personaObj.nombre + " " +personaObj.apellidos+ " tiene " + personaObj.edad + " años"
+ " y sigue con los ojos "+ personaObj.colorOjos)
</script>
Constructoras
 Creación de objetos con funciones constructoras
 La creación de un objeto mediante una función constructora consiste en dos pasos:
 1.definimos el perfil del objeto mediante una función constructora. El objeto “this” es el propio objeto.
 2.creamos un objeto usando el operador “new”

function persona ( ID, nombre, edad, sexo ) {


this.ID = ID
this.nombre = nombre
this.edad = edad
this.sexo = sexo
}
Juan = new persona(“10123456A”,“Juan Manuel”,31,“H”);
Rosa = new persona(“09333444Q”,“Rosa Cueva”,28,“M”);
Uso de Object
<script type="text/javascript">
//función constructora y this
function persona(nombre,apellidos,edad,colorOjos)
{
this.nombre=nombre
this.apellidos=apellidos
this.edad=edad
this.colorOjos=colorOjos
}
//Creación de objetos con new
yo=new persona("Juan Manuel","Cueva Lovelle",49,"verdes")
document.write( yo.nombre + " tiene " + yo.edad + " años")
</script>
Uso de Object

<script type="text/javascript">
personaObj = new Object()
personaObj.nombre="Juan Manuel"
personaObj.apellidos="Cueva Lovelle"
personaObj.edad=49
personaObj.colorOjos="verdes"
document.write(personaObj.nombre + " " +personaObj.apellidos+
" tiene " + personaObj.edad + " años"
+ " y sigue con los ojos "+ personaObj.colorOjos)
</script>
UNIVERSIDAD TÉCNICA
DE MANABÍ

Gracias

Ing. Tatiana Cobeña M. MEng.

También podría gustarte