














Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
java libros, javascript, php y algunos trabajos de la universidada
Tipo: Guías, Proyectos, Investigaciones
1 / 22
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!















JavaScript es un lenguaje de programación que permite el script de eventos, clases y acciones para el desarrollo de aplicaciones Internet entre el cliente y el usuario. JavaScript permite con nuevos elementos dinámicos ir más allá de clicar y esperar en una página Web. Los usuarios no leerán únicamente las páginas sino que además las páginas ahora adquieren un carácter interactivo. Esta interacción permite cambiar las páginas dentro de una aplicación: poner botones, cuadros de texto, código para hacer una calculadora, un editor de texto, un juego, o cualquier otra cosa que pueda imaginarse.
Los navegadores interpretan las sentencias de JavaScript incluidas directamente en una página HTML, permitiendo la creación de aplicaciones similares a los CGI.
Aún no hay definición clara del scripting language ("lenguaje interpretado de comandos"). A veces el término se usa para distinguir este tipo de lenguaje de los lenguajes compilados como el C++. Quizá, algunos lenguajes como el C o C++ puedan ser usados para scripts de aplicaciones. JavaScript es en muchos aspectos un lenguaje de programación parecido al C o C++.
Como otros lenguajes script , JavaScript extiende las capacidades de la aplicación con la que trabajan, así JavaScript extiende la página Web más allá de su uso normal. Hay numerosas maneras de dar vida al Web y dar flexibilidad al lenguaje. El único límite es la imaginación.
5.1.1. Propiedades del Lenguaje JavaScript
Las propiedades más importantes de JavaScript son las siguientes:
5.1.2. El lenguaje JavaScript
JavaScript está basado en un modelo orientado al WWW. Elementos de una página como un botón o un cuadro de selección, pueden causar un evento que ejecutará una acción. Cuando ocurre alguno de estos eventos se ejecuta una función en JavaScript. Esta función está compuesta de varias sentencias que examinan o modifican el contenido de la página Web, o hacen otras tareas para dar respuesta de algún modo al evento.
Por lo general, los comandos de un programa en JavaScript se dividen en 5 categorías:
30 Informática III
5.1.3. Variables y valores
En JavaScript , a diferencia de la mayoría de los lenguajes de programación, no se debe especificar el tipo de datos. No hay manera de especificar que una variable representa un entero, una cadena de caracteres, un número con decimales (que se escriben con punto y no con coma), o un valor lógico booleano. De hecho, la misma variable puede ser interpretada de diferentes modos en diferentes momentos.
Todas las variables se declaran usando el comando var****. Una variable puede ser inicializada cuando se da un valor al ser declarada, o puede no ser inicializada. Además, varias variables pueden ser declaradas a la vez separadas por comas.
Ejemplo 1: var variable1= "coche" var cuaderno var mi_variable = 123456, decimal =2342. var n_casas, n_habitaciones, n_cuadros, nombre = "Franklin"
5.1.4. Sentencias, Expresiones y Operadores
Como en la mayoría de los lenguajes de programación, la unidad básica de trabajo en JavaScript es la sentencia. Una sentencia de JavaScript hace que algo sea evaluado. Esto puede ser el resultado de dar valor a una variable, llamar a una función, etc. Cualquiera de las líneas del ejemplo 1 es una sentencia.
Los programas de JavaScript son un grupo de sentencias, normalmente organizadas en funciones que manipulan las variables y el entorno HTML en el cual el script trabaja.
Los operadores hacen que en una sentencia las variables sean evaluadas y se les asigne un valor o un resultado. Los operadores pueden actuar de distinto modo en diferentes situaciones. Algunos operadores de JavaScript pueden ser sobrecargados, es decir, pueden tener diversas interpretaciones según su modo de uso.
No hay ningún carácter especial o signo que marque el final de una sentencia en un programa. Por defecto se considera que una sentencia ha acabado cuando se llega al final de la línea, aunque se puede especificar el fin con el carácter punto y coma (;). Ésto hace posible poner varias sentencias en una sola línea separadas entre sí por un punto y coma.
Las dos siguientes sentencias realizan la misma operación, para JavaScript no tienen ninguna diferencia
Ejemplo 2: var variable1= "coche" var variable1= "coche"; y estos dos grupos de sentencias también:
Ejemplo 3: var a = 0; a = 2+4; var c = a / 3 (;) var a = 0 a = 2+ var c = a / 3 Los segunda sentencia es una expresión.
5.1.5. Estructuras de Control.
Con lo explicado, aún no es posible escribir código para un programa completo; hay que conocer construcciones de nivel más elevado. Existen varios métodos para controlar el modo de ejecución de sentencias que se verán más adelante.
5.1.6. Funciones y Objetos
Las sentencias, expresiones y operadores básicos se agrupan en bloques más complejos dentro de un mismo programa llamadas funciones. El control de estructuras representa el siguiente nivel de organización de JavaScript. Las funciones y los objetos representan el nivel más alto de organización del lenguaje.
5.1.6.1. Funciones
Una función es un bloque de código con un nombre. Cada vez que se usa el nombre, se llama a la función y el código de la función es ejecutado. Las funciones pueden llamarse con valores, conocidos
32 Informática III
Si no se pone el atributo SRC, entonces entre las TAGs se escribe el código en el lenguaje indicado en la primera TAG. La estructura general del código es:
El siguiente programa usa la función del ejemplo 4. Con el formulario, , nos pide un número que evaluamos con la función y devolvemos su valor absoluto. Puede que haya cosas que no queden claras, pero todo se explicará con más detalle a posteriori. La función de estos ejemplos previos no es sino la de dar una visión general del lenguaje.
Ejemplo 6:
El número de cosas que se pueden hacer en una página HTML es bastante limitado. La mayoría de los usuarios simplemente leen un texto, miran gráficos y como mucho escuchan sonidos. Para muchos, la experiencia del Web consiste en visitar una serie de páginas sin interaccionar prácticamente con ellas. La única interacción ocurre cuando el usuario selecciona un link o clica un mapa de imagen.
Los formularios de HTML han cambiado gradualmente este modelo para incrementar el nivel de interacción. Un formulario tiene varios modos de aceptar entradas. El usuario rellena el formulario y lo envía. Es difícil saber si el formulario ha sido rellenado correctamente y el tiempo de proceso del formulario es normalmente bastante largo. En el caso del HTML, este proceso ocurre porque el contenido del formulario tiene que ser enviado a través de la red a algún fichero en el servidor, donde se procesa y entonces se da una respuesta al usuario. Incluso el más simple error causa el rechazo del formulario, y por lo tanto que deba repetirse el proceso.
Uno de los objetivos de JavaScript es localizar la mayoría de estos procesos y mejorarlos dentro del browser del usuario. JavaScript es capaz de asegurarse que un formulario se rellene y envíe correctamente; evitando que el usuario tenga que repetir el formulario a causa de algún error.
JavaScript realiza esto mediante los gestores de eventos. Estos son sentencias de JavaScript , normalmente funciones, que se llaman cada vez que algo ocurre. Las funciones de JavaScript pueden ser llamadas cuando se envía un formulario o cuando el usuario usa campos del formulario.
5.2.1. Eventos y acciones
Para entender el modelo de gestores de eventos de JavaScript , hay que pensar primero sobre las cosas que pueden ocurrir actualmente en una página Web. Aunque algunas cosas se pueden hacer con el
Capítulo 5. JavaScript 33
browser, la mayoría de estas no tienen que ver con la navegación en el Web (salvar una página como texto, imprimirla, editar un bookmark, etc.).
Para entender qué acciones del browser corresponden a los eventos de JavaScript y cuales no, es importante distinguir aquellas acciones que causan algún cambio en la página Web cuando se muestra. De hecho, realmente hay sólo dos tipos de acciones: las que permiten que el usuario pueda navegar o las que hacen posible que el usuario pueda interactuar con un elemento de un formulario HTML.
5.2.1.1. Acciones de Navegación y Eventos
En la categoría de navegación se pueden distinguir las siguientes acciones:
Dependiendo del tipo de error y del browser usado puede perderse la página activa. Estos eventos, cargar y descargar una página, son los únicos eventos que pueden ser manejados por JavaScript a nivel de los documentos. Esto significa que es posible escribir código JavaScript contenido dentro de la definición de HTML de una página, que se ejecutará cada vez que la página sea cargada o descargada.
5.2.2. Gestores de Eventos (Event Handlers)
5.2.2.1. Declaración
En la introducción se ha dicho que las funciones de JavaScript sólo se ejecutan en respuesta a eventos. Se sabe que los eventos ocurren cuando se produce alguna interacción o cambio en la página Web activa.
Las declaraciones de los gestores de eventos es muy similar a los atributos de HTML. Cada nombre del atributo empieza con la palabra on y sigue con el nombre del evento, así por ejemplo onClick es el atributo que se usaría para declarar un gestor de eventos para el evento Click (clicar un objeto).
La declaración de un gestor de eventos es: onEvent=“Código_JS”. Normalmente, por convenio, se escribe on en minúscula y el nombre del evento con la letra inicial en mayúscula. Esto ayuda a distinguir éste de los demás atributos.
Los tipos de eventos y gestores de eventos son los siguientes:
Evento Ocurre Cuando Gestor blur El usuario quita el cursor de un elemento de formulario onBlur click El usuario clica un link o un elemento de formulario onClick change El usuario cambia el valor de un texto, un área de texto o selecciona un elemento.
onChange
focus El usuario coloca el cursor en un elemento de formulario. onFocus load El usuario carga una página en el Navegador onLoad Mouseover El usuario mueve el ratón sobre un link onMouseOver Select El usuario selecciona un campo del elemento de un formulario
onSelect
Submit Se envía un formulario onSubmit Unload Se descarga la página onUnload
El valor del atributo es un conjunto de código JavaScript o una referencia a una función de JavaScript. El código o la función se ejecuta al activar el evento.
Ejemplo 7:
Capítulo 5. JavaScript 35
5.2.2.2.2. Gestores a nivel de formulario
La TAG FORM se usa para comenzar la definición de un formulario HTML. Incluye atributos como el METHOD usado para elegir el modo de envío del formulario, la acción que se debe cumplir (ACTION) y el atributo onSubmit. La sintaxis es como la que sigue:
El gestor onSubmit es llamado cuando el contenido del formulario se envía. También es posible especificar una acción onClick en un botón de envío. El uso común del gestor onSubmit es verificar el contenido del formulario: el envío continúa si el contenido es válido y se cancela si no lo es.
5.2.2.2.3. Gestores a nivel de elementos de formulario
Casi todos los elementos de un formulario tienen uno o más gestores de eventos. Los botones pueden generar eventos click, el texto y la selección de elementos pueden generar los eventos focus , blur , select y change.
Hay dos excepciones a la regla que todos los elementos de un formulario pueden tener gestores de eventos. La primera excepción se aplica a los items ocultos, . No se ven, no se pueden cambiar y no pueden generar eventos. La segunda se aplica a los elementos individuales OPTION dentro de una lista de selección (que se crean con la opción SELECT). La TAG SELECT puede tener atributos declarando gestores de eventos ( focus , blur y change ), pero las OPTION no pueden generar eventos.
Los campos de texto (text fields) de HTML, con el atributo TYPE de texto "text" pueden declarar gestores de eventos como combinación de los 4 elementos de texto: focus , blur , change y select. Con la TAG TEXTAREA se crea la entrada de texto en varias líneas y pueden generarse estos gestores de eventos. En cambio la selección de listas creadas con pueden generar todos los eventos menos el select.
Estos eventos pueden usarse para obtener un buen control sobre el contenido de un texto o una lista de selección de ítems. Las aplicaciones más comunes usan el evento change o blur para asegurarse de que el campo tiene el valor apropiado.
Ejemplo 9:
EJEMPLO DEL COMANDO this
Las clases en JavaScript se pueden agrupar en tres categorías:
36 Informática III
5.3.1. Clases Predefinidas (Built-In Objects).
5.3.1.1. Clase String
Cada vez que se asigna un valor string (cadena de caracteres a una variable o propiedad, se crea un objeto de la clase string. Al asignar un string a una variable no se usa el operador new.
Los objetos string tienen una propiedad, length (número de carácteres de la cadena), y varios métodos que manipulan la apariencia de la cadena (color, tamaño, etc.).
Métodos sobre el contenido : (recordar que las string tienen como base de índices el cero.)
Suponiendo que la variable cadena es un objeto de la clase string, el uso de los métodos se realiza de la siguiente manera: cadena.método( ).
Métodos sobre la apariencia:
Ejemplo 10: var cadena = "Mira hacia aquí". cadena.charAt ( 2 ) = "r" cadena.indexOf ( i ) = 1 cadena.lastIndexOf (a ) = 11 cadena.subString ( 5, 9 ) cadena.toLowerCase( ) = "mira hacia aquí" cadena.toUpperCase( ) = "MIRA HACIA AQUÍ"
Métodos sobre el HTML:
38 Informática III
Ejemplo 12: Math.abs(-4) = 4 Math.abs(5) = 5 Math.max(2,9).=. Math.pow(3,2) = 9 Math.sqrt(144) = 12
5.3.1.3. Clase Date
Una de las cosas más complicadas de cualquier lenguaje es trabajar con fechas. Esto es porque hay gente que para representar fechas y horas toma un sistema no decimal ( los meses en unidades sobre 12, las horas sobre 24 y los minutos y segundos sobre 60). Para el ordenador es ilógico trabajar con números bonitos y redondeados.
La clase date simplifica y automatiza la conversión entre las representaciones horarias del ordenador y la humana.
La clase date de JavaScript sigue el estándar de UNIX para almacenar los datos horarios como el número de milisegundos desde el día 1 de enero de 1970 a las 0:00. Esta fecha se denomina "la época".
Aunque la clase date no tiene propiedades, tiene varios métodos. Para usar la clase date hay que entender cómo construir un objeto de esta clase. Para eso hay tres métodos:
Ejemplo 13: var dato = new Date(90, 10, 23) var dato = new Date(1990, 10, 23)
Estas dos declaraciones se refieren a la fecha del 23 de noviembre de 1990. Hay un modo opcional para declarar la hora además de la fecha. Hay poner 3 argumentos más a la vez que se ponen los argumentos de la fecha.
Ejemplo 14: var dato2 = new Date(90, 10, 23, 13,5,9)
Esta declaración se refiere a la 1:05:09 PM del día 23 de noviembre de 1990. Métodos :
Capítulo 5. JavaScript 39
Ejemplo 15: var dato2 = new Date(90, 10, 23, 13,5,9) dato2.getHours() = 13 dato2.getDay() = 0 (si es lunes),1 (si es martes), etc. dato2.getSeconds = 9 dato2.setMonth() = 2 // el mes cambia a marzo dato2.setYear() = 96
5.3.2. Funciones Predefinidas (Built-in Functions): eval, parseFloat, parseInt.
Además de los clases String , Math y Date hay un pequeño conjunto de funciones predefinidas por JavaScript. No son métodos ni se aplican a los objetos. Tiene el mismo comportamiento que cuando se crean funciones con el comando function.
5.3.2.1. eval(string)
Esta función intenta evaluar su argumento de tipo string como una expresión y devolver su valor. Esta función es muy potente porque evalúa cualquier expresión de JavaScript.
Ejemplo 16: w = (x * 14) - (x / z) + 11 z = eval ("(x * 14) - (x / z) + 11")
Si x es una variable con el valor 10 las siguientes expresiones asignan 146 a w y z.
5.3.2.2. parseFloat(string)
Esta función intenta convertir su argumento de tipo string como un número decimal (de coma flotante).
Ejemplo17: parseFloat("3.14pepecomeperas345") = 3.
5.3.2.3. parseInt(string, base)
Esta función se comporta de forma muy similar a la anterior. Intenta convertir su argumento de tipo string como un entero en la base elegida.
Ejemplo 18: ParseInt(10111, 2)= 23
Se convierte el número 10111 en base binaria.
5.3.3. Clases del browser
El modelo de clases de JavaScript y su conjunto de clases, métodos y funciones predefinidas dan un moderno lenguaje de programación. Puesto que JavaScript se designó para trabajar con y en el World Wide Web tuvo que haber un nexo entre JavaScript y el contenido de las páginas HTML. Este nexo viene dado por un conjunto de clases del browser y del HTML.
Las clases del browser son una extracción del entorno del browser e incluye clases para usar en la página actual, en la lista de documentos visitados (history list) y en el URL actual. Existen métodos para abrir nuevas ventanas, mostrar cajas de diálogos y escribir directamente HTML (en algunos ejemplos se ha usado el método write de la clase document.
Las clases del browser (o navegador) son el nivel más alto de la jerarquía de objetos de JavaScript. Representan información y acciones que no necesariamente hay que asociar con una página Web. Dentro de una página Web cada elemento HTML tiene su objeto correspondiente, un objeto HTML dentro de la jerarquía de objetos. Cada formulario HTML y cada elemento dentro de un formulario HTML tiene su correspondiente objeto.
La siguiente figura muestra la jerarquía de los objetos del browser y del HTML referidos a todos los elementos de una página Web.
Capítulo 5. JavaScript 41
mientras que la de confirm muestra el mensaje con un botón OK y otro Cancel. Devuelve, como valor de retorno, true si se clica OK o false si se clica Cancel.
El método prompt se usa para solicitar al usuario una entrada de datos, en forma de cadena de caracteres. Muestra una caja de diálogo con el string_mensaje y un campo de texto editable. Este método acepta un segundo argumento opcional que se usa para fijar un valor por defecto en el campo de texto. Devuelve lo que escribe el usuario en el campo de texto.
El método open se usa para abrir una ventana nueva en el browser. El argumento URL_string representa el URL que será cargado en la ventana donde el otro argumento nombre_ventana da nombre a la ventana. Este método devuelve una instancia del objeto window que representa la nueva ventana creada. Este método también acepta un tercer argumento opcional que se usa para especificar los modos de mostrar la nueva ventana. Cuando el método close se llama desde un ejemplar del objeto window, esa ventana se cierra y el URL se descarga.
5.3.3.2. Clase Document
Cada ventana se asocia con un objeto document. El objeto document contiene propiedades para cada ancla, link, y formulario en la página. También contiene propiedades para su título, color de fondo, colores de los links y otros atributos de la página. El objeto document tiene los siguientes métodos:
El método write se usa para escribir cualquier cadena de caracteres, incluyendo programación HTML, al documento actual. Este método puede usar un número variable de argumentos. El método writeln es idéntico al método write, excepto que en la salida imprime un salto de línea al acabar de escribir sus argumentos. Hay que notar que el salto de línea será ignorado por el browser, el cual no incluye espacios en blanco, a menos que el writeln esté dentro de texto preformateado.
Ejemplo 20: document.clear() document.close() document.open() document.write("Juan come peras") -> Juan come peras document.writeln("Juan come peras") -> Juan come peras
5.3.3.3. Clase Location
El objeto location describe el URL del documento. Este tiene propiedades representando varios componentes del URL, incluyendo su parte de protocolo, de hostname, de pathname, de número de puerto, entre otras propiedades. También tiene el método toString el cual se usa para convertir el URL a una cadena de caracteres. Para mostrar el URL actual podemos usar el siguiente código:
Ejemplo 21: var lugar = document.location document.write("El URL actual es " + lugar.toString()) document.write("")
5.3.3.4. Clase History
El objeto history se usa para referirse a la lista de URLs visitados (history list) anteriormente. Tiene una propiedad conocida como length, la cual indica cuántos URLs están presentes en la history list actualmente. Tiene los siguientes métodos:
42 Informática III
Ejemplo 22: history.back() history.forward() history.go(-2) history.go(+3)
5.3.4. Clases del documento HTML (anchors, forms, links)
Para entender cómo trabajan los objetos HTML en JavaScript , hay que considerar ciertas piezas de HTML que crean un ancla, un formulario y un link a este ancla. Para aclarar estos conceptos nos basamos en el ejemplo 23.
Este código crea una página HTML con un ancla al principio de la página y un link al ancla al final. Entre ambas hay un simple formulario que permite al usuario poner su nombre. Hay un submit button (botón de envío) por si se quiere enviar y un botón de reset por si no se quiere enviar. Si el usuario envía con éxito el contenido del formulario vía post al e-mail ficticio [email protected].
Ejemplo 23:
Ejemplo sencillo de página HTML
Este es el principio de la página
Introduzca su nombre:
Clica aquí para ir al principio de la página // link
El aspecto más importante de este ejemplo es el hecho de que los elementos HTML se reflejan en la jerarquía de objetos de JavaScript. Se puede acceder al título del documento a través de la propiedad title del objeto documento. Se puede acceder a otros elementos HTML de este documento usando las siguientes propiedades:
El objeto form correspondiente a forms[0] tiene sub-objetos para cada uno de los tres elementos (el botón de reset, el botón de envío y el campo de texto) y propiedades para el método submit. forms[0].elements[0] corresponde a la entrada del campo de texto. forms[0].elements[0].name es el nombre de este campo, como el especificado por el atributo NAME, el cual en este caso es "me". La
44 Informática III
Ejemplo 24: function casa( habs, estil, fecha, garage){ this.habitaciones = habs this.estilo = estil this.fecha_construcción = fecha this.tiene_garage = garage }
Un objeto específico de casa tendrá las 4 propiedades con sus valores. Las instancias se crean usando la sentencia new con una función de llamada. Se crearía un objeto de casa, llamado micasa del siguiente modo:
Ejemplo 25: var micasa = new casa(10,”Colonial”, 1989, verdadero)
Ahora el objeto micasa es otra variable. Tiene que declararse usando var. Ahora que micasa ha sido creada podemos referirnos a sus propiedades con el operador punto (. ):
Ejemplo 26: micasa.habitaciones = 10 (entero, int) micasa.estilo = “colonial” (cadena de caracteres, String) micasa.fecha_construcción = 1989 (entero ,int) micasa.tiene_garage = true (booleano)
No hay nada que evite poner “yes” en la propiedad tiene_garage en vez de un valor booleano, por esto hay que tener cuidado con este tipo de confusión. Si se pone “yes”, tiene_garage no será booleana sino una cadena de caracteres.
5.4.1. Funciones (métodos)
Uno de los aspectos más potentes de la programación orientada a objetos de JavaScript es la posibilidad de crear clases con funciones miembro, llamadas métodos. Esto tiene varias ventajas como la organización y la asociación de funciones con clases. Los métodos, aunque programando se trabaje como si fueran propiedades no se tienen en cuenta a la hora de contarlos como tales.
Por ejemplo, tenemos una función que muestra las propiedades de los objetos de la clase casa llamada muestra_props( ). Para añadirla como propiedad (se llamará muestra) a un objeto o a su clase se debería escribir:
Ejemplo 27: this.muestra = muestra_props dentro de la definición de la clase casa. Micasa.muestra = muestra_props como una sentencia normal.
y para usarlas, con los objetos de la clase casa: micasa.muestra( ) o bien muestra_props( micasa )
5.4.2. Objetos como Arrays (Vectores)
Algunos lenguajes de programación soportan datos de tipo array ( C , C++ , Visual Basic, Java, etc.). Un array es una colección de items con índices los cuales son del mismo tipo. En C por ejemplo para declarar un array de 10 datos de tipo entero, se hace de la forma: int nombre[10]; y estos enteros son definidos desde el nombre[0] al nombre[9]. Es más común que la base del primer índice sea un 0 (zero-based indexing) que un 1 (one-based indexing).
JavaScript usa 0 como base del primer índice. En JavaScript , quizá, arrays y objetos son 2 puntos de vista del mismo concepto. Cada objeto es un array de los valores de sus propiedades, y cada array es también un objeto. Volviendo al ejemplo anterior, el objeto micasa es un array con los siguientes cuatro elementos:
Ejemplo 28: micasa[0]=10 (habitación) micasa[1]=“colonial” (estilo) micasa[2]=1989 (fecha_construcción) micasa[4]=True (tiene garaje)
Capítulo 5. JavaScript 45
No parece haber muchas ventajas al referirse a objetos de este modo más numérico y menos informático. Quizá, esta forma alternativa permite acceder a las propiedades secuencialmente (p. ej con un bucle) lo que es muy usado.
Es aconsejable definir todos las clases con una propiedad que dé el número de propiedades en el objeto y haciéndola la primera propiedad. Ahora el objeto micasa es un array de 5 elementos. La nueva propiedad se denomina length (longitud).
Ejemplo 29: micasa.lenght = 5 micasa[0]=10 (habitación) micasa[1]=“colonial” (estilo) micasa.habitaciones = micasa[2]=1989 (fecha_construcción) micasa.estilo=micasa[3] = True (tiene garaje) micasa.tiene_garage = micasa[4] = True (tiene garaje)
Aun hay otro modo de dar valor a las propiedades:
Ejemplo 30: micasa[“length”] = 5 micasa[“habitaciones”] = 10 micasa[“estilo”] = “colonial” micasa[“fecha_construccion”] = 1989 micasa[“tiene_garaje”] = true
5.4.3. Extender Objetos
Qué pasa si queremos más propiedades en un objeto: nada. Es posible extender dinámicamente un objeto simplemente tomando una nueva propiedad. Con el Ejemplo 31 se verá mejor:
Ejemplo 31: tucasa = new casa(26, “restaurante”,1993, false) tucasa.paredes = 6 tucasa.tiene_terraza = true
Estas dos sentencias añaden dos propiedades al final del array tucasa. Las extensiones dinámicas se aplican sólo a objetos específicos. El objeto micasa no se ve afectado ni la clase casa se ve afectada ni el objeto casa cambia de ningún modo.
Esta característica que se puede aplicar a los objetos simplifica mucho la programación. Para asegurarse de que no se producen errores al intentar mostrar las propiedades de un objeto es importante cambiar la propiedad que almacena el número de propiedades.
Ejemplo 32: tucasa.length += 2
Un caso común donde la extensión dinámica es muy usada es en arrays de número variable.
5.4.4. Funciones con un número variable de argumentos.
Todas las funciones de JavaScript tienen las siguientes 2 propiedades: caller y arguments. La propiedad caller es el nombre de cada uno que llama a la función. La propiedad arguments es un array de todos los argumentos que no están en la lista de argumentos de la función. La propiedad caller permite a una función identificar y responder al entorno desde donde se llama. La propiedades arguments permite escribir funciones que toman un número de argumento variable. Los argumentos de la lista de argumentos de una función son obligatorios mientras que los que están en la propiedad arguments son opcionales.
El siguiente ejemplo muestra los argumentos obligatorios y opcionales de una función.
Capítulo 5. JavaScript 47
Además hay otros operadores no tan conocidos como:
Ejemplo 34: 12 % 5 returns 2.
5.5.4. Operadores lógicos
Los operadores lógicos toman valores lógicos (booleanos) como operandos. Devuelven un valor lógico. Los valores lógicos son true (verdadero) y false (falso). Se suelen usar en las sentencias de control.
Ejemplo 35: if ((edad_pepe>=18)&&(edad_juan==18)){ document.write("Juan y pepe son adultos") } else { document.write("Uno de los dos no es adulto") }
5.5.5. Operadores de Comparación (= =, >, >=, <, <=, !=)
Un operador de comparación compara sus operandos y devuelve un valor lógico según sea la comparación verdadera o no. Los operandos pueden ser números o cadenas de caracteres. Cuando se usan cadenas de caracteres, las comparaciones se basan en el orden alfabético. Al igual que los operadores lógicos, se suelen usar en sentencias de control.
Los operadores son:
48 Informática III
5.5.6. Operadores de String
Además de los operadores de comparación, que pueden usarse con cadenas de caracteres, existe el operador concatenación (+) que une dos cadenas, devolviendo otra cadena que es la unión de las dos anteriores.
Ejemplo 36: "mi " + "casa" devuelve la cadena "mi casa".
El operador de asignación += se puede usar para concatenar cadenas. Por ejemplo, si la variable letra es una cadena con el valor "alfa", entonces la expresión letra += "beto" evalúa a "alfabeto" y asigna este valor a letra.
5.5.7. Prioridad de los operadores
La prioridad de los operadores determina el orden con el cual se aplican cuando se evalúan. Esta prioridad se rompe cuando se usan paréntesis.
La prioridad de operadores, de menor a mayor es la que sigue:
JavaScript soporta un conjunto de sentencias que se pueden usar para hacer interactivas las páginas Web.
5.6.1. La sentencia if
Una sentencia if es como un interruptor. Si la condición especificada es cierta, se ejecutan ciertas sentencias. Si la condición es falsa, se pueden ejecutar otras. Un sentencia if es :
if (condición) { sentencias 1 } [else { sentencias 2}]
La parte else es opcional.
Ejemplo 37: if ((edad_pepe>=18)&&(edad_juan==18)){ document.write("Juan y pepe son adultos") } else { docuemnt.write("Uno de los dos no es adulto") }
5.6.2. Bucles
Un bucle es un conjunto de comandos que se ejecutan repetidamente hasta que una condición especificada se encuentra. JavaScript proporciona dos tipos de bucles: for y while.