Unidad1 Mod2 Javascript
Unidad1 Mod2 Javascript
Presentación:
JavaScript, es un lenguaje de programación de páginas web de lado del cliente, esto
significa, que cuando estamos viendo una página que utiliza JavaScript, hemos descargado
el código a nuestro navegador y nuestro navegador lo está ejecutando de acuerdo con las
acciones realizadas en la página.
Objetivos:
Que los participantes:
Bloques temáticos:
• Condicionales simples y anidados
• If y switch
• Acceder a un elemento HTML
• Acceder a los valores de un formulario
• innerHTML
En esta Unidad los participantes se encontrarán con diferentes tipos de actividades que, en
el marco de los fundamentos del MEC*, los referenciarán a tres comunidades de
aprendizaje, que pondremos en funcionamiento en esta instancia de formación, a los
efectos de aprovecharlas pedagógicamente:
Es importante que todos los participantes realicen algunas de las actividades sugeridas y
compartan en los foros los resultados obtenidos.
El carácter constructivista y colaborativo del MEC nos exige que todas las actividades
realizadas por los participantes sean compartidas en los foros.
Tomen nota
Las actividades son opcionales y pueden realizarse en forma individual, pero siempre es
deseable que se las realice en equipo, con la finalidad de estimular y favorecer el trabajo
colaborativo y el aprendizaje entre pares. Tenga en cuenta que, si bien las actividades son
opcionales, su realización es de vital importancia para el logro de los objetivos de
aprendizaje de esta instancia de formación. Si su tiempo no le permite realizar todas las
actividades, por lo menos realice alguna, es fundamental que lo haga. Si cada uno de los
participantes realiza alguna, el foro, que es una instancia clave en este tipo de cursos,
tendrá una actividad muy enriquecedora.
Asimismo, también tengan en cuenta cuando trabajen en la Web, que en ella hay de todo,
cosas excelentes, muy buenas, buenas, regulares, malas y muy malas. Por eso, es
necesario aplicar filtros críticos para que las investigaciones y búsquedas se encaminen a
la excelencia. Si tienen dudas con alguno de los datos recolectados, no dejen de consultar
al profesor-tutor. También aprovechen en el foro proactivo las opiniones de sus compañeros
de curso y colegas.
Sin embargo, no se pueden realizar programas que muestren un mensaje si el valor de una
variable es igual a un valor determinado y no muestren el mensaje en el resto de casos.
Tampoco se puede repetir de forma eficiente una misma instrucción, como por ejemplo
sumar un determinado valor a todos los elementos de un array.
Para realizar este tipo de programas son necesarias las estructuras de control de flujo, que
son instrucciones del tipo "si se cumple esta condición, hazlo; si no se cumple, haz esto
otro". También existen instrucciones del tipo "repite esto mientras se cumpla esta
condición".
Si se utilizan estructuras de control de flujo, los programas dejan de ser una sucesión lineal
de instrucciones para convertirse en programas inteligentes que pueden tomar decisiones
en función del valor de las variables.
Estructura if
La estructura más utilizada en JavaScript y en la mayoría de lenguajes de programación es
la estructura if. Se emplea para tomar decisiones en función de una condición. Su definición
formal es:
if(condicion) {
...
}
Si la condición se cumple (es decir, si su valor es true) se ejecutan todas las instrucciones
que se encuentran dentro de {...}.
Ejemplo:
Las comparaciones siempre se realizan con el operador ==, ya que el operador = solamente
asigna valores:
La condición que controla el if() puede combinar los diferentes operadores lógicos y
relacionales mostrados anteriormente:
Los operadores AND y OR permiten encadenar varias condiciones simples para construir
condiciones complejas:
Estructura if...else
En ocasiones, las decisiones que se deben realizar no son del tipo "si se cumple la
condición, hazlo; si no se cumple, no hagas nada". Normalmente las condiciones suelen
ser del tipo "si se cumple esta condición, hazlo; si no se cumple, haz esto otro".
Para este segundo tipo de decisiones, existe una variante de la estructura if llamada if...else.
if(condicion) {
...
} else {
...
}
Si la condición se cumple (es decir, si su valor es true) se ejecutan todas las instrucciones
que se encuentran dentro del if().
Ejemplo:
var edad = 18
if(edad >= 18) {
alert("Eres mayor de edad")
} else {
alert("Todavía eres menor de edad")
}
Si el valor de la variable edad es mayor o igual que el valor numérico 18, la condición del
if() se cumple y por tanto, se ejecutan sus instrucciones y se muestra el mensaje "Eres
mayor de edad".
Sin embargo, cuando el valor de la variable edad no es igual o mayor que 18, la condición
del if() no se cumple, por lo que automáticamente se ejecutan todas las instrucciones del
bloque else { }.
La condición del if() anterior se construye mediante el operador ==, que es el que se emplea
para comparar dos valores (no confundir con el operador = que se utiliza para asignar
valores).
Switch
Una sentencia switch permite a un programa evaluar una expresión e intentar igualar el
valor de dicha expresión a una etiqueta de caso (case). Si se encuentra una coincidencia,
el programa ejecuta la sentencia asociada. Una sentencia switch se describe como se
muestra a continuación:
switch (expresión) {
case etiqueta_1:
sentencias_1
[break]
case etiqueta_2:
sentencias_2
[break]
...
default:
sentencias_por_defecto
[break]
}
El programa primero busca una cláusula case con una etiqueta que coincida con el valor
de la expresión y, entonces, transfiere el control a esa cláusula, ejecutando las sentencias
asociadas a ella. Si no se encuentran etiquetas coincidentes, el programa busca la cláusula
opcional default y, si se encuentra, transfiere el control a esa cláusula, ejecutando las
sentencias asociadas. Si no se encuentra la cláusula default, el programa continúa su
ejecución por la siguiente sentencia al final del switch. Por convención, la cláusula por
defecto es la última cláusula, aunque no es necesario que sea así.
La sentencia opcional break asociada con cada cláusula case asegura que el programa
finaliza la sentencia switch una vez que la sentencia asociada a la etiqueta coincidente es
ejecutada y continúa la ejecución por las sentencias siguientes a la sentencia switch. Si se
omite la sentencia break, el programa continúa su ejecución por la siguiente sentencia que
haya en la sentencia switch.
Ejemplo:
sentencia break, el programa termina el switch y ejecuta las sentencias que le siguen. Si la
sentencia break fuese omitida, la sentencia para el caso "Cerezas" también sería ejecutada.
switch (tipoFruta) {
case "Naranjas":
alert("Naranjas cuestan $40 el kilo.")
break;
case "Manzanas":
alert ("Manzanas cuestan $35 el kilo.")
break;
case "Bananas":
alert ("Plátanos cuestan $50 el kilo.")
break;
case "Cerezas":
alert ("Cerezas cuestan $45 el kilo.")
break;
case "Mangos":
alert ("Mangos cuestan $42 el kilo.")
break;
case "Mandarinas":
alert ("Mangos y papayas cuestan $25 el kilo.")
break;
default:
alert ("Disculpa, no tenemos el tipo de fruta " + tipoFruta + ".")
}
alert ("¿Te gustaría tomar algo?")
La principal ventaja del DOM para HTML es que todos los atributos de todos los elementos
HTML se transforman en propiedades de los nodos. De esta forma, es posible acceder de
forma directa a cualquier atributo de HTML. Si se considera el siguiente elemento <img> de
HTML con sus tres atributos:
Las ventajas de utilizar esta forma de acceder y modificar los atributos de los elementos es
que el código resultante es más sencillo y conciso. Por otra parte, algunas versiones de
Internet Explorer no implementan correctamente el método setAttribute(), lo que provoca
que, en ocasiones, los cambios realizados no se reflejan en la página HTML.
La única excepción que existe en esta forma de obtener el valor de los atributos HTML es
el atributo class. Como la palabra class está reservada por JavaScript para su uso futuro,
no es posible utilizarla para acceder al valor del atributo class de HTML. La solución
consiste en acceder a ese atributo mediante el nombre alternativo className:
El acceso a las propiedades CSS no es tan directo y sencillo como el acceso a los atributos
HTML. En primer lugar, los estilos CSS se pueden aplicar de varias formas diferentes sobre
un mismo elemento HTML. Si se establecen las propiedades CSS mediante el
atributo style de HTML:
El acceso a las propiedades CSS establecidas mediante el atributo style se realiza a través
de la propiedad style del nodo que representa a ese elemento:
Las ventajas de utilizar esta forma de acceder y modificar los atributos de los elementos es
que el código resultante es más sencillo y conciso. Por otra parte, algunas versiones de
Internet Explorer no implementan correctamente el método setAttribute(), lo que provoca
que, en ocasiones, los cambios realizados no se reflejan en la página HTML.
La única excepción que existe en esta forma de obtener el valor de los atributos HTML es
el atributo class. Como la palabra class está reservada por JavaScript para su uso futuro,
no es posible utilizarla para acceder al valor del atributo class de HTML. La solución
consiste en acceder a ese atributo mediante el nombre alternativo className:
El acceso a las propiedades CSS establecidas mediante el atributo style se realiza a través
de la propiedad style del nodo que representa a ese elemento:
Para acceder al valor de una propiedad CSS, se obtiene la referencia del nodo, se accede
a su propiedad style y a continuación se indica el nombre de la propiedad CSS cuyo valor
se quiere obtener.
Si el nombre de la propiedad CSS está formado por tres palabras, se realiza la misma
transformación. De esta forma, la propiedad border-top-style se accede en DOM mediante
el nombre borderTopStyle.
Además de obtener el valor de las propiedades CSS, también es posible modificar su valor
mediante JavaScript. Una vez obtenida la referencia del nodo, se puede modificar el valor
de cualquier propiedad CSS accediendo a ella mediante la propiedad style:
<p id="parrafo">...</p>
Todos los ejemplos anteriores hacen uso de la propiedad style para acceder o establecer
el valor de las propiedades CSS de los elementos. Sin embargo, esta propiedad sólo
permite acceder al valor de las propiedades CSS establecidas directamente sobre el
elemento HTML. En otras palabras, la propiedad styledel nodo sólo contiene el valor de las
propiedades CSS establecidas mediante el atributo style de HTML.
Por otra parte, los estilos CSS normalmente se aplican mediante reglas CSS incluidas en
archivos externos. Si se utiliza la propiedad style de DOM para acceder al valor de una
propiedad CSS establecida mediante una regla externa, el navegador no obtiene el valor
correcto:
// Código HTML
<p id="parrafo">...</p>
// Regla CSS
#parrafo { color: #008000 }
// Código JavaScript
var parrafo = document.getElementById("parrafo")
var color = parrafo.style.color // color no almacena ningún valor
Lo que vimos:
En esta unidad trabajamos con Condicionales y otras estructuras
Lo que viene:
Trabajaremos con funciones y eventos.