JavaScript Desde Cero | PDF
JavaScript Desde Cero
100% (3) 100% encontró este documento útil (3 votos) 450 vistas 587 páginas Resumen de la descarga de la pagina web aprender a programar, es muy interesante
Descripción completa
- APPENDER apr OGRAMARE ar
TUTORIAL BASICO DEL PROGRAMADOR WEB:
JAVASCRIPT DESDE CERO.
Objetivos
JavaScript (JS) es un lenguaje de programacién cuyo uso principal ha venido siendo dotar
de dinamismo, rapidez y efectos atractivos a las paginas web, mediante su uso combinado
junto a HTML, CSS y otros lenguajes. Este curso permite aprender los fundamentos de
JavaScript, imprescindible para trabajar con paginas web hoy dia.
Destinatarios
Personas que ya tengan unos conocimientos minimos sobre creacién de paginas web (HTML y
CSS) y sobre programacién. Para realizar este curso de JavaScript, debes tener conocimientos
previos de HTML y CSS, asi como de fundamentos de programacién (haber programado
antes). Se recomienda haber realizado los cursos “Tutorial basico del programador web” sobre
HTML desde cero y CSS desde cero, de [Link], antes de seguir este curso.
Contenidos
Y_INTRODUCCION A JAVASCRIPT. QUE ES Y PARA QUE SIRVE JAVASCRIPT. VERSIONES. EL ECMA.
Y_ INSERTAR JAVASCRIPT EN WEBS. EN LINEA, INTERNO Y EXTERNO.
Y_ CREANDO SCRIPTS BASICOS. COMENTARIOS, VARIABLES, OPERADORES, CONTROL DEL FLUJO.
Y_ FUNCIONES JAVASCRIPT. CREACION E INVOCACION. PARAMETROS Y RETORNO.
Y OBJETOS EN JAVASCRIPT. QUE SON? TRABAJAR CON ARRAYS, DATE, IMAGE, STRING, MATH.
¥ DOM. JERARQUIA DE OBJETOS DEL NAVEGADOR. WINDOW, DOCUMENT.
Y_ GESTION DE EVENTOS CON JAVASCRIPT. TIPOS DE EVENTOS. MANEJADORES DE EVENTOS.
Y APLICANDO JAVASCRIPT: CSS, FORMULARIOS, CALENDARIOS, RELOJES, MENUS, GALERIAS.
¥_ JAVASCRIPT AVANZADO. APIS, LIBRERIAS. JQUERY. FIREBUG Y DEPURACION DE CODIGO.
150 horas de dedicacién efectiva, incluyendo lecturas, estudio y ejercicios.
Direccién, modalidades y certificados
El curso esté dirigido por César Krall, Responsable del Departamento de Produccién de
[Link] del portal web [Link]. Se oferta bajo la
modalidad web (gratuito).ON a) eae elcL A eel)
Seccion: Cursos
Categoria: Tutorial basico del programador web: JavaScript desde cero
Fecha revisién: 2029
Resumen: Entrega n21 del curso Tutorial basico del programador web
JavaScript desde cero. Indice del curso
Autor: César KrallIndice curso “Tutorial bésico programador web: JavaScript desde cero’. “SAP ENDER APP OGRAMARE
aL
12.
13.
14.
1s.
16.
a7.
18.
19.
24.
2.2
23.
3a.
32.
33,
3.4,
INDICE DEL CURSO
INTRODUCCION A JAVASCRIPT. QUE ES Y PARA QUE SIRVE. VERSIONES JAVASCRIPT. EL ECMA.
Qué es JavaScript? HTML, CSS y bases de programacién, conocimiento previo necesario,
Es JavaScript un lenguaje de programacién? éPara qué sirve? Diferencias de HTML, CSS, PHP,
Diferencias entre JavaScript, CSS, HTML. Frontera entre JavaScript, CSS, HTML y programacién.
JavaScript del lado del cliente y JavaScript del lado del servidor. Node,js.
JavaScript en aplicaciones web Joomla, WordPress, Drupal, phpBB... Efectos.
Empezar a usar JavaScript a partir de un documento HTML con estructura basica.
Versiones JavaScript. Algo de historia y perspectiva. Qué es el ECMA? Guias oficiales,
Documentacién especificacién oficial JavaScript. Alternativas a JavaScript.
Qué necesito para escribir cédigo JavaScript y crear paginas web?
INSERTAR JAVASCRIPT. ESTILOS EN LINEA, INTERNO Y EXTERNO. TIPOS DE ELEMENTOS.
De la estructura HTML y modelo de cajas CSS a JavaScript.
Scripts en linea, interno y externo.
Archivos JS. Comentarios javaScript.
CREANDO SCRIPTS BASICOS.
Variables y tipos de variables. Nimeros. Texto. Valores booleanos. Null y undefined.
Ambito de variables. Conversién de tipas.
Operadores légicos, aritméticos y relacionales. Expresiones de asignacién y de evaluacién.
Condicionales con JavaScript. Bucles con JavaScript. Control de flujo con break y continue.
FUNCIONES JAVASCRIPT.
Definir funciones. Invocar funciones. Argumentos y pardmetros para funciones,
OBJETOS EN JAVASCRIPT.
Qué es un objeto? Crear objetos. Consultar y establecer propiedades de objetos.
Borrar propiedades de objetos. Verificar propiedades. Enumerar propiedades.
Atributos y métodos.
Arrays. Crear arrays. Leer y escribir elementos de arrays. Propiedad length.
[Mas informacién: contacto@[Link]co protameder web: Insert desde co", SBP ENDER APP: OGRAMARS
Indice curso “Tutor
5.5. Afiadir y borrar elementos de arrays
5.6. Arrays unidimensionales y arrays multidimensionales. Recorrido de arrays.
5.7. Métodos de arrays. Comprobar si un objeto es tipo array.
5.8. Laclase Date. Trabajar con fechas en JavaScript.
5.9. Trabajar con imagenes en JavaScript.
5.10. La clase Math JavaScript. Trabajar con funciones matematicas.
6. DOMYJERARQUIA DE OBJETOS.
6.1. EQuées el DOM? Jerarquia de objetos en paginas web.
6.2, Del documento HTML a un érbol de nodos. Tipos de nodos.
6.3. Seleccidn de elementos en un documento. Atributos y contenido de elementos.
6.4. Crear, insertar y borrar nodos con JavaScript.
65. _Elobjeto Window. Manejo del tiempo (timers). Trabajo con multiples ventanas y marcos.
6.6. Document. Elementos de document como propiedades de Window.
7. GESTION DE EVENTOS CON JAVASCRIPT.
7.1. Tipos de eventos. Manejadores de eventos o event handlers.
7.2. Eventos en la carga de! documento (Load).
7.3. Eventos generados por el ratén (mouse).
7.4. Eventos arrastrar y soltar (drag and drop).
7.5. Eventos generados por el teclado.
7.6. _ Informacién generada por los eventos y su manejo.
8 APLICANDO JAVASCRIPT EN DESARROLLOS WEB.
8.1. Manejo de CSS através de JavaScript.
8.2. JavaScript para la gestién de formularios web. Usos en validacién de formularios.
83. Calendarios con JavaScript.
8.4. Utilidades tipo reloj, cronémetro, cuenta atrés, etc. con JavaScript.
8.5. Efectos para mentis basados en JavaScript: desplegado dropdown,
8&6. _ Rotacién de imagenes y galerias de imagenes basadas en JavaScript.
9. JAVASCRIPT AVANZADO.
9.1, APIS HTML. Api Canvas. Api Drag and Drop. Api Geolocation. Api Storage. Api File.
9.2. Librerfas JavaScript. Una visién general. jQuery, Mootools, Prototype, Modernizr, Google API.
9.3. Adentréndonos en jQuery. Conceptos basicos y aplicaciones basicas.
9.4. Depuracién de errores JavaScript. Herramientas. Firebug.
‘Acceso al curso completo en [Link] -- > Cursos, 0 en la direccién siguiente:
htto://[Link]/[Link]?option=com_content&view=categorv&id=[Link]=206
(Mas informacién: contacto@[Link][Link]
Seccion: Cursos
Categoria: Tutorial basico del programador web: JavaScript desde cero
Fecha revisién: 2029
Resumen: Entrega n22 del Tutorial basico del programador web
JavaScript desde cero. Orientacién sobre duracién del curso y
conocimientos previos recomendados.
Autor: César Krallesciptdede ero’ — Cursos, o en la direccién siguiente:
hnttp://[Link]/[Link]?option=com_content&view=category&iid=[Link]=206
© [Link], 2006-2029ar =
[Link]concepto de mvs. engnedepropamedén cecénclente, _— Cursos, 0 en la direccién siguiente:
tegoryid=[Link]=206
[Link] _content&vie\
© [Link], 2006-2029apr =
[Link]apr ENDER apr OGRAMARS
Concepto de JavaScript. Lenguaje de programacién ejecucion cliente.
JAVASCRIPT EN EL MARCO DE LA PROGRAMACION WEB
Ya hemos comentado que JavaScript se integra dentro de los desarrollos web con otros lenguajes como
HTML, CSS y generalmente con un lenguaje del lado del servidor como PHP, JSP 6 ASP u otros. Hemos
dicho también que su uso principal es ejecutarse del lado del cliente (computador del usuario). En esta
entrega del curso vamos a ver cémo se integra JavaScript dentro de los desarrollos web en general y
cémo existen posibilidades para usar JavaScript no sélo del lado del cliente.
Si hiciéramos un simil entre una orquesta y un desarrollo web, el director de orquesta seria el lenguaje
del lado del cliente (por ejemplo PHP}, que acta como “cerebro” controlador de la pagina web. CSS
seria el encargado de vestuario y maquillaje, es decir, quien controla la apariencia de lo que se presenta
al puiblico. HTML seria la estructura: el encargado de cémo se distribuyen las sillas en el escenario,
donde se coloca cada miisico y qué instrumento lleva cada musico. Supongamos que para distintas
canciones (urls) los miisicos cambian de posicién (cambia la estructura HTML). JavaScript seria el
encargado de efectos especiales, por ejemplo quien mueve las luces y dispara un cafién de confetis en
un momento dado, una persona dgil y rapida. Por ultimo tenemos a la base de datos, un encargado de
guardar todas las partituras (informacién) y de ir entregéndolas 2 medida que se lo requieren los
misicos u otros encargados.
Esto es sélo un simil, pero nos sirve de introduccién para contextualizar el papel habitual de JavaScript
dentro de los desarrollos web.
Una orquesta puede tocar sin director (sin lenguaje del lado del servidor), sin encargado de efectos
especiales (lavaScript), sin encargado de vestuario y presentacién (CSS), pero no sin muisicos (HTML). De
todas formas, una buena orquesta normalmente tendré todo el personal (recursos de programacién}
necesarios para que su puesta en escena sea “brillante”.
Un lenguaje de programacién es un lenguaje que se usa para realizar procesos de interés a través de un
ordenador o dispositivo electrénico, desde un cdlculo para un estudiante o ingeniero, a una compra por
internet, pasando por cualquier cosa que se te ocurra. Un lenguaje de programacién tiene como
caracteristicas basicas el tener la capacidad para “tomar decisiones” o ejecutar un proceso u otro en
funcién de las circunstancias (por ejemplo dependiendo del botén que pulse el usuario), asi como el ser
capaz de repetir procesos numerosas veces hasta que se cumpla una condicién. JavaScript es un
Ienguaje que permite cumplir estas funciones, por tanto es un lenguaje de programacién, aunque se
use junto a otros lenguajes de programacién y lenguajes de etiquetas como HTML y CSS.
JavaScript es un lenguaje que aparecié para hacer mas faciles de programar y mas faciles para navegar
los desarrollos web. Un desarrollo web comprende miltiples areas de conocimiento:
© [Link], 2006-2029concpto de mvs. engine depropanedéncecsnclns, — Cursos, o en la direccién siguiente:
om _contentview=category&id=78<emi
htto://[Link]/[Link]?optior
© [Link], 2006-2029apr =
Naa ec ARR aeL YL)—cApr ENDER apr OGRAMARE
Diferencias entre JavaScript, Java, HTML, CSS, PHP. etc.
DIFERENCIAS ENTRE JAVA Y JAVASCRIPT
Como hemos visto, JavaScript es un lenguaje de programacién para desarrollos web que normalmente
usaremos del lado del cliente (es decir, que se ejecuta en el computador personal del usuario). Muchas
veces nos han planteado la pregunta: ées JavaScript y Java lo mismo? éPor qué tienen nombres tan
similares?
Java y JavaScript son dos lenguajes de programacién con un nombre parecido y algunas similitudes en
algunos aspectos, pero que en el fondo son dos lenguajes completamente independientes y
completamente distintos. Una persona puede saber mucho de JavaScript y no tener “ni idea” de Java, y
al revés.
Si son distintos, épor qué tienen un nombre tan parecido? La causa de esta similitud en los nombres se
debe a el origen de JavaScript. Inicialmente fue desarrollado por la empresa Netscape en 1995 con el
nombre de LiveScript. Posteriormente pas6 a llamarse JavaScript quizas tratando de aprovechar que
Java era un lenguaje de programacién de gran popularidad y que un nombre similar podia hacer que el
nuevo lenguaje fuera atractivo. Pero salvando algunas similitudes, ambos lenguajes son bien distintos.
Su principal parecido podemos decir que es el nombre y algunos aspectos de sintaxis, ya que su
finalidad y filosofia son muy distintos.
A continuacién indicamos algunas similitudes y diferencias entre uno y otro lenguaje:
src} Pero
Es un lenguaje de programacién de propésito general,
Ltilizado tanto en aplicaciones tradicionales de
‘computadores como en desarrollos web.
Es un lenguaje de programacién de propésito
especitico (desarrollos web)
Es un lenguaje que requiere de compilacién
Es un lenguaje que no requiere de compilacién al ser
(traduecién previa a cédigo maquina antes de ser neste a “
ejecutado},
interpretado directamente por los navegadores..
Es un lenguaje que se puede considerar pesado,
potente y robusto en el sentido de que permite hacer
de todo con un gran control
Es un lenguaje que se puede considerarligero, dgil y
poco robusto en el sentido de que no permite hacer
‘todo lo que permiten otros lenguajes.
Es un lenguaje bajo la filosofia o paradigma de
antacién a objetos completamente.
Es un lenguaje no clasificable bajo un paradigma
concreto y admite algunas formas de programacién no
‘admitidas por Java.
Se puede utilizar tanto del lado del servidor como del
lado del cliente. Tiene su uso principal del lado del
servidor.
Se puede utilizar tanto del lado del servidor como del
lado del cliente. Tiene su uso principal del lado del
cliente.
© [Link], 2006-2029Diferencias entre JavaScript, ave, HTML, CSS, PHP, ete.
apr ENDER apr OGRAMARS
Tr seg
Su sintaxis esta inspirada en la sintaxis del lenguaje de
programacién C
Su sintaxis también esta inspirada en la sintaxis del
lenguaje de programacién C
Requiere de un kit de desarrollo y maquina virtual Java
para poder programar en él
No requiere nada especifico para poder programar en
él (Unicamente un navegador web para ver los
resultados y un editor de texto para escribir el cédigo).
Es un lenguaje fuertemente tipado: las variables tienen
Un tipo declarado y no pueden cambiar el tipo de
contenido que almacenan.
Es un lenguaje débilmente tipado: las variables pueden
ro ser de un tipo especifico y cambiar el tipo de
contenido que almacenan.
Es un lenguaje con mas capacidades y mas complejo
‘que Javascript.
Es un lenguaje con menos capacidades y menos
‘complejo que Java,
Si estas dudando site conviene estudiar Java o estudiar JavaScript te recomendamos lo siguient.
= Siquieres orientarte especificamente a los desarrollos web estudia JavaScript.
- Si quieres formarte integralmente como programador y no conoces ningtin lenguaje orientado
a objetos, estudia primero Java y luego JavaScript.
En este curso nos centramos en el estudio de JavaScript en el contexto de los desarrollos web. Si estas
interesado en un curso de Java puedes acceder a él en esta direccién web:
JAVASCRIPT Y HTML, CSS, PHP...
A veces nos encontraremos que se puede lograr un mismo efecto usando HTML, usando CSS 6 usando
un lenguaje de programacién. éPor qué tantas formas para hacer una misma cosa? éDénde esta la
frontera entre cada lenguaje?
Esta pregunta no es de facil respuesta. Vamos a ver con un ejemplo lo que puede ocurtir para algo tan
sencillo como aplicar algunos efectos a un texto. No obstante, ten en cuenta que este ejemplo relative
a texto podria aplicarse a otros conceptos como bordes, margenes, animaciones, etc.
EI lenguaje HTML permite aplicar algunos efectos visuales al texto. Escribe o copia este cédigo y
guardalo en un archivo de nombre ejemplo1 html
© [Link], 2006-2029Oierencesentr Jat ae, HTML 65, PH ee ‘apr ENDER apr OGRAMARE
-
-
-title>emplo HTML [Link]/titie>
-Negrta: Quiero aprender a programarTachado: Quiero aprender a programar
-Color fuente: Quiero aprender a programars/font>
<[osy>
‘content-type" charset="ut8">
Con Javascript podemos hacer algo parecido, Escribe o copia este cédigo y guardalo en un archivo de
nombre [Link]:
Eemplo Javascript [Link]é/title>
tal y como mostramos a continuacién:
shead>
Dentro de las etiquetas ... incluiremos una etiqueta de apertura de declaracién de
script .
© [Link], 2006-2029Jeane dtd por utes -cAPPENDER apr OGRAMARS
Los motivos por los que se introdujo la especificacién type son varios:
a) Existian (y existen) distintos lenguajes de script, es decir, ademas de javascript nos podemos
encontrar otros lenguajes. El uso de type se concibié para indicarle al navegador qué lenguaje
era el que usaba el script. Por ejemplo type="text/vbscript™ indicaria lenguaje VBscript,
type="text/tel" indicaria lenguaje TCL, etc.
b) Fue parte de la especificacién oficial de algunas versiones de HTML.
Desde el momento en que todos los navegadores reconocen JavaScript sin necesidad de la
especificacién type, usarla o no resulta indistinto y no vamos a preocuparnos mas por este asunto. Por
otro lado ten en cuenta que la etiqueta
Snead
/Aqu un pérafo de texto stuado antes de la imagen, dentro de un dv contenedor
Aqui otro pérrafo de texto JavaScript es un lenguae utiizado pare dotar
de efectos dinémicos a las paginas web.
fae
Notepades,
© [Link], 2006-2029Jeane dtd por utes AP ENDER apr OGRAMAR=
Visualiza la pagina, El resultado esperado seré que al hacer click sobre la imagen se muestre un mensaje
{el mensaje 1), mientras que al hacer click sobre el parrafo inferior se mostrara otro mensaje (el
‘mensaje 2). Aqui vemos cémo hemos definido un script. Nos podemos hacer algunas preguntas como:
éPuede escri juetas ..
?
La respuesta es que si. La mayoria de los navegadores aceptarén que el script esté en casi cualquier
se un script en otro lugar distinto del comprendido entre las
parte. Prueba a cambiar el cédigo y ponerlo en distintos lugares y comprueba los resultados. Pero
poniendo el cédigo fuera de podemos tener problemas con algunos navegadores, 0
podemos tener problemas en algunos casos en que el cédigo deba guardar cierto orden. Para no tener
problemas pondremos siempre los scripts dentro de las etiquetas ... .
ePueden escribirse varios scripts en una misma pagina web?
La respuesta es que si. Por ejemplo esto seria valido:
Aqui en vez de un script con dos funciones, tenemos dos scripts cada uno de ellos con una funcién.
éCudl es mejor opcién, un script o dos scripts? Recordar que JavaScript es un cédigo que es
interpretado por el navegador (en concreto por una parte del navegador a la que se denomina
precisamente intérprete JavaScript). Al escribir dos scripts estamos obligando al intérprete a leer mas
lineas, y considerar dos unidades de scripts en lugar de una. Esto ralentiza la carga de la pagina web y
su ejecucién, por tanto normalmente incluiremos el cédigo dentro de un tnico script, excepto cuando
justificadamente necesitemos 0 sea razonable hacerlo de otra manera. En paginas web avanzadas es
posible que encuentres muchos scripts que salen de muchos sitios diferentes.
Qué extensi6n puede tener un script?
La que nosotros queramos. Puede ser desde una linea hasta miles de lineas.
Proxima entrega: CU01110€
‘Acceso al curso completo en [Link] -- > Cursos, 0 en la direccién siguiente:
hnttp://[Link]/[Link]?option=com_content&view=category&iid=[Link]=206
© [Link], 2006-2029ar =
ON a ANP) Ole Na OLJavaScript externo en archivos de extensionjs. Apr ENDER apr OGRAMARS
JAVASCRIPT EN ARCHIVOS JS
Hemos visto que podemos incluir JavaScript “embebido” dentro de una linea de HTML 0 dentro de la
cabecera del documento HTML. Pero esto sera poco practico cuando tengamos muchas paginas web
que necesiten usar las mismas funciones JavaScript. éVamos a estar repitiendo el cédigo en cada
pagina?
JAVASCRIPT EXTERNO EN ARCHIVOS JS
De la misma forma que el cédigo CSS puede estar contenido en archivos externos con extensién css, el
cédigo JavaScript puede independizarse del documento HTML introduciéndolo en un archivo de texto
con extensién Jjs y que se invocara desde el cédigo HTML de la forma que mostramos a continuacién:
"rutaDelArchivot js">
*rutaDelArchivo2,js">
*[Link]">
'text/javascript” src:
‘text/javascript” sre:
‘text/javascript” sre:
Podemos invocar un solo archivo, 0 dos, tres, cuatro... tantos como resulten necesarios.
En el atributo src tenemos que especificar la ruta del archivo referenciado (si no indicamos nada, se
sobreentiende que est en el mismo directorio que el documento HTML). Supongamos que un archivo
externo con cédigo JavaScript se llamara functions, y estuviera dentro de una carpeta denominada jsf
En ese caso escribiriamos: src="/jsf/functions js"
En general tener el c6digo JavaScript en archivos independientes sera lo mas practico desde el punto de
vista del mantenimiento de un sitio web. Tendremos las funciones agrupadas y ordenadas, pudiendo
ser Invocadas desde cualquier parte de nuestra pagina web. Esto nos ahorrard tiempo de
mantenimiento: si tenemos 200 documentos html, no tendremos que hacer 200 modificaciones sino
inicamente modificar el archivo o los archivos con las funciones JavaScript que usamos en todo nuestro
sitio web.
© [Link], 2006-2029Javscript entero en archives de etensin Apr ENDER 2p OGRAMARE
Veamos un ejemplo. Escribe este cédigo y guardalo en un archivo de extensién html:
-chtmni>
Portal web - [Link]é/title>
Aqui un parrafo de texto situado antes de la Imagen, dentro de un dv contenedor
Aqui otro pérrafo de texto, JavaScript es un lenguale utilzado para dotar
de efectos dinémicos a las paginas web,
Crea un archivo de nombre [Link] (créalo con un editor de textos como el bloc de notas,
Notepad++ 0 cualquier otro) y escribe el siguiente cédigo:
function mostrarMensaje1({
‘alert(’Blenvenido al curso Javascript de [Link]);
d
function mostrarMensaje2(){
‘alert Ha hecho click sobre el prrafo inferior’;
y
El resultado esperado al cargar la pagina html sera el siguiente:
1) Nada més cargarse la pagina aparecerd una ventana informativa con el texto “Completada la carga
de la pagina’, Esto se debe a que hemos incluido JavaScript en linea asociado a la etiqueta body. El
evento onload se produce cuando el elemento body se ha cargado completamente en el navegador. En
ese momento se dispara el cédigo JavaScript asociado.
2) Al hacer click sobre la imagen se muestra un mensaje (el mensaje 1), debido a que hemos indicado
que cuando se produzca el evento onclick sobre la imagen, debe ejecutarse la funcién
mostrarMensaje1(). Esta funcién no se encuentra dentro del documento html, pero el navegador ha
incorporado el cédigo JavaScript externo porque asi se lo hemos indicado al indicar sre =
“[Link]”. Por tanto el cédigo externo funciona como si fuera cédigo incluido en el propio
documento html.
3) Al hacer click sobre el pérrafo inferior se mostraré otro mensaje (el mensaje 2), debido a que hemos
indicado que cuando se produzca el evento onclick sobre el segundo parrafo debe ejecutarse la funcién
mostrarMensaje2()
© [Link], 2006-2029Javscript entero en archives de etensin Apr ENDER pr OGRAMARE
Nos podemos hacer algunas preguntas como:
éPor qué tenemos una funcién definida en linea y otras definidas en archivos externos?
En general seré més interesante tener todo el cédigo organizado en un archivo externo en lugar de
tenerlo “desperdigado” en scripts dentro de html, cédigo en linea, etc. No obstante, acostimbrate a
que por miiltiples motivos te puedes encontrar con paginas web donde la organizacién del cédigo no
sea buena. El navegador aceptara el cédigo que se encuentre, tanto en linea, como interno, como
externo. Como programadores deberemos intentar mantener el cédigo tan ordenado como sea posible.
Para ello es util usar archivos externos y agrupar las funciones de un mismo tipo dentro de carpetas y
archivos con nombres descriptivos. Por ejemplo si tenemos un reloj javascript, todas las funciones
asociadas al reloj pueden ir dentro de un archivo de nombre [Link]. Si tenemos una calculadora con
diferentes funciones, podemos crear una carpeta calculadora y dentro de ella poner los archivos
[Link], calculosFinancieros,js y [Link] por ejemplo.
No hay que incluir las etiquetas en el archivo js?
No, de hecho si lo hacemos el cédigo JavaScript es probable que no funcione al no ser capaz el
intérprete del navegador de entender su significado en ese contexto. En los archivos js se incluye cédigo
JavaScript Gnicamente. La etiqueta es cédigo html que se utiliza para delimitar el
cédigo JavaScript dentro de un documento html. Esas etiquetas no forman parte del lenguaje
JavaScript, por tanto no tiene sentido incluirlas en un documento JavaScript. Si el navegador encuentra
cosas extrafias en un archivo js posiblemente ignore todo su contenido (con lo cual no ejecutaré
ninguna funcidn y no veremos resultado alguno).
ePuedo ver el cédigo JavaScript si visualizo el cédigo fuente de la pagina web?
Depende. El cédigo JavaScript en linea 0 interno forma parte del documento HTML, por tanto si
visualizas el cédigo fuente de la pagina si podrés verlo. En cambio el cédigo en archivos externos no
podrds verlo directamente dentro del cédigo HTML de la web, aunque si podras ver el archivo al que se
referencia, Podrés acceder al cédigo JavaScript escribiendo la ruta correspondiente. Por ejemplo
[Link] podria ser una ruta en local (en nuestro ordenador) 0
[Link] podria ser una ruta en una pagina web on-
line. De este modo podemos visualizar el cédigo JavaScript asociado a una pagina web.
éEntonces me pueden copiar otras personas mi c6\
0 JavaScript (y yo copiarlo de otras webs)?
Si, Ten en cuenta que JavaScript se ejecuta del lado del cliente, es decir, en el ordenador del usuario, Lo
mismo que el cédigo HTML y el cédigo CSS.
éPuede robarse informacién del usario o introducir virus usando JavaScript?
En general no, ya que los navegadores y sistemas operativos incluyen medidas de seguridad que
impiden que a través de cédigo JavaScript se pueda acceder al ordenador del usuario. No obstante,
© [Link], 2006-2029snnscrigt eterno enrchives de etn apr ENDER apr OGRAMARE
siempre hay “mentes perversas” que buscan fallos de seguridad en los sistemas e intentan hacer cosas
de este tipo. Es muy dificil, pero a veces lo consiguen (y seguidamente son perseguidos por la policia).
éDeshabilitar JavaScript puede ser una buena medida de seguridad?
Podria serlo, pero no tiene demasiado sentido. Es como no salir de casa para evitar que te roben.
Puedes hacerlo, pero te perderias todo lo que hay fuera de tu casa y nadie quiere vivir sin disfrutar de
lo que nos puede ofrecer la vida.
4Es posible ejecutar cédigo JavaScript sin estar asociado a una respuesta a un evento?
Si, escribe este cédigo en un archivo html y visualiza el resultado en tu navegador.
Portal web - [Link]é/title> Aqui estamos
El resultado esperado es que se cargue en pantalla el texto “Hola”. A continuacién se ejecuta el cédigo
JavaScript que al no estar incluido dentro de una funcidn se ejecuta directamente. E! resultado es que
se detiene la carga de la pagina web y aparece una ventana con el mensaje “Estamos cargando los
contenidos de la web...”. Una vez pulsamos aceptar, se terminara la carga de la pagina y aparecera el
texto “Aqui estamos”. En este caso hemos hecho cosas extrafias (isdlo para ver un ejemplo de cosas
que te puedes encontrar!): hemos incluido un script fuera de las etiquetas ... y hemos
dado lugar a la ejecucién de un cédigo JavaScript secuencialmente con el progreso de la carga del htm|,
cen lugar de dar lugar a su ejecucién en respuesta a un evento (que seria lo mas normal)
Proxima entrega: CU01111E
‘Acceso al curso completo en [Link] ~ > Cursos, o en la direccién siguiente:
htto://[Link]/index.pho2optio
© [Link], 2006-2029ONAN P) a OLCNaeL
Seccion: Cursos
Categoria: Tutorial basico del programador web: JavaScript desde cero
Fecha revisién: 2029
Resumen: Entrega n211 del Tutorial basico “JavaScript desde cero”
Autor: César Krallcoments sup sen sonst depuntoyconafna _~ Portal web - [Link]é/title>
<Aqui un pérrafo de texto situado antes de la Imagen, dentro de un div contenedor
«Aqul atra pérrafo de texto JavaScript es
‘un lenguaje utlzado para dotar de efectos dindmicos a as paginas web.
Visualiza el resultado y comprueba que la pagina web se muestra con normalidad y que JavaScript se
ejecuta con normalidad.
© [Link], 2006-2029Comentarios JavaScript nsercién automtea de punto yeome inal. _—“S@IPENDER AP OGRAMARE
Los comentarios son parte del cédigo JavaScript. EI navegador los recibe y los detecta pero los ignora al
no constituir instrucciones que hayan de ejecutarse. Sin embargo, los comentarios pueden ser
visualizados si accedemos al cédigo fuente de la pagina web (cosa que puede hacer cualquier usuario)
Por lo tanto en los comentarios no debe figurar nada que pueda considerarse indebido (como “este
cédigo lo he copiado a mi compajiero de trabajo sin permiso”, 6 “Para acceder a la base de datos usar
como datos usuario: cesar y contrasefia: [Link]”).
Los comentarios deben usarse para describir aspectos importantes. Por ejemplo, contenido de un
archivo, cometido de una funcién, versién, licencia, autor, copyright, aspectos que permitan una mejor
comprensién del cédigo, avisos importantes, ete.
Obviamente los comentarios JavaScript tienen que encontrarse dentro de cédigo JavaScript, no pueden
insertarse en cualquier parte. Por tanto deberan estar dentro de las etiquetas 0
bien dentro de un archivo js, no pueden encontrarse en el cédigo HTML.
Los comentarios multilinea no se pueden anidar (es decir, no puede haber un comentario muttilinea
dentro de otro comentario multilinea). Los comentarios multilinea pueden dar lugar a errores cuando
se mezclan con expresiones regulares (hablaremos de expresiones regulares mas adelante),
INSERCION AUTOMATICA DE PUNTO Y COMA.
En general las sentencias JavaScript deben terminar con un punto y coma que delimita el final de una
instruccién. No obstante, en caso de que “se olvide” insertar el punto y coma delimitador, el intérprete
JavaScript lo insertard autométicamente siempre que le sea posible, facilitando que el cédigo se
ejecute,
En el cédigo anterior, elimina los punto y coma al final se las sentencias JavaScript:
function mostrarMensajet() (
‘lert( Bienvenido al curso JavaScript de [Link]'’)
)
function mostrarMensaje2() {
alert Ha hecho click sobre el pérrafo inferior’)
)
Visualiza la pagina web en tu navegador y comprueba que JavaScript sigue funcionando. éPor qué?
Porque el intérprete del navegador, al encontrar que faltan los ; de cierre, los ha introducido
automaticamente para permitir que se ejecute el cédigo. Aunque esto puede parecer una facilidad,
recomendamos siempre el cierre de toda instruccién mediante punto y coma. Esto evitard errores 0
que ocurran cosas indeseadas.
Proxima entrega: CU01112E
‘Acceso al curso completo en [Link] -- > Cursos, 0 en la direccién siguiente:
htto://[Link]/[Link]?option=com_content&view=categorvBid=78&.itemid=206
© [Link], 2006-2029apr =
ON aa ec Aneel)“apr ENDER apr OGRAMARS
Tipos de datos ytipos de variables en JavaScript. Declaracién.
TIPOS DE VARIABLES EN JAVASCRIPT
JavaScript permite trabajar con variables, como es habitual en los lenguajes de programacién. Ademas
permite trabajar con objetos, un tipo de informacién mas compleja que una variable simple. De forma
general podriamos referirnos a tipos de datos en JavaScript, y dentro de esos tipos de datos tenemos
dos grupos fundamentales: los tipos primitivos y los tipos objeto.
TIPOS DE DATOS EN JAVASCRIPT
Los tipos de datos JavaScript se dividen en dos grupos: tipos primitives y tipos objeto.
Los tipos primitivos incluyen: cadenas de texto (String), variables booleanas cuyo valor puede ser true o
false (Boolean) y numeros (Number). Ademas hay dos tipos primitivos especiales que son Null y
Undefined. Es en los tipos primitivos donde vamos a centrarnos por el momento.
Los tipos objeto son datos interrelacionados, no ordenados, donde existe un nombre de objeto y un
conjunto de propiedades que tienen un valor. Un objeto puede ser creado especificamente por el
programador. No obstante, se dice que todo aquello que no es un tipo primitivo es un objeto y en este
sentido también es un objeto, por ejemplo, una funcién. Lo estudiaremos mas adelante.
Existen algunos objetos especiales con un comportamiento que estudiaremos por separado mas
adelante: el “objeto global”, el “objeto prototipo”, los arrays, las funciones, las clases definidas por el
programador, las clases predefinidas JavaScript (como la clase Date para manejo de fechas, la clase
RegExp para manejo de expresiones regulares y busqueda de patrones en texto, y la clase Error para
almacenar informacion relacionada con los errores) y otros.
Los primeros lenguajes de programacién no usaban objetos, solo variables. Una variable podriamos
decir que es un espacio de la memoria del ordenador a la que asignamos un contenido que puede ser
basicamente un valor numérico (sélo niimeros, con su valor de eélculo) 0 de tipo cardcter 0 cadena de
caracteres (valor alfanumérico que constara sélo de texto o de texto mezclado con ntimeros)
Como ejemplo podemos definir una variable a que contenga 32 y esto lo escribimos como a = 32.
Posteriormente podemos cambiar el valor de a y hacer a = 78. O hacer “a” equivalente al valor de otra
variable “b" asi: a=b.
Dado que antes hemos dicho que un objeto también ocupa un espacio de memoria: cen qué se parecen
y en qué se diferencia un objeto de una variable? Consideraremos que las variables son entidades
elementales: un numero, un cardcter, un valor verdadero o falso... mientras que los objetos son
entidades complejas que pueden estar formadas por mucha informacién. Pero ambas cosas ocupan lo
mismo: un espacio de memoria (que puede ser mas 0 menos grande)
© [Link], 2006-2029Tipos de datos ytipos de variables en JavaScript. Declaracion,
El siguiente esquema es un resumen sobre tipos de datos en
~
Portal web - [Link]é/title>
-/Aquitun parrafo de texto situado antes de la imagen, dentro de un div contenedor
Aqut otro pérrafo de texto. JavaScript es
‘un lenguaje utllzado para dotar de efectos dindmicos a las paglnas web.
Notepades,
Visualiza el resultado y comprueba que la pagina web se muestra con normalidad y que JavaScript se
ejecuta con normalidad cuando pulsas sobre la imagen.
El resultado esperado es que se muestre lo siguiente:
La variable precio vale: undefined (Aceptar)
La variable dato1 vale: null (Aceptar)
La variable precio vale: 32.55 (Aceptar)
El doble de precio es: 65.1 (Aceptar)
El importe resultante de multiplicar precio por cantidad es: 325.5 (Aceptar)
La variable precio vale ahora: muy caro (Aceptar)
El doble de precio es ahora: NaN (Aceptar)
La variable precio ha sido declarada por segunda vez y ahora vale: 99.55 (Aceptar)
La variable Sdescuento_aplicado vale: 0.55 (Aceptar)
© [Link], 2006-2029Tipos de datos vtpos de variables en JavaScript. Decaracin. apr ENDER apr OGRAMARS
SIGNIFICADO DE UNDEFINED, NULL Y NAN
De este ejemplo debemos destacar lo siguiente:
a) Se cumplen los conceptos basicos explicados.
b) El contenido de una variable no inicializada es undefined. En este caso decimos que la variable
es de tipo Undefined,
©) El-contenido de una variable puede ser null y en ese caso decimos que la variable es de tipo
Null
d) Si intentamos realizar una operacién matemética con una variable cuyo contenido no es
numérico sino texto, la variable toma el valor NaN. Para JavaScript NaN (abreviatura de “Not-a-
Number”) es un valor numérico especial, que representa “niimero ilegal o no representable”. La
asignacién de NaN que realiza JavaScript autométicamente cuando se intentan realizar
operaciones numéricas ilegales evita la aparicién de errores explicitos 0 que el cédigo JavaScript,
deje de ejecutarse.
EJERCICIO.
Crea un cédigo JavaScript donde se genere un error por un mal uso de la palabra clave var y comprueba
la respuesta del navegador.
Crea una variable y asignale los contenidos true y false, e intenta multiplicarlas por un niimero (por
ejemplo por 2). Qué resultados obtienes? ZA qué crees que se deben estos resultados?
Para comprobar si es correta tu solucién puedes consultar en los foros [Link].
Proxima entrega: CUO1113E
‘Acceso al curso completo en [Link] -- > Cursos, o en la direccién siguiente:
ate
/[Link]/[Link]?optior
© [Link], 2006-2029ar =
ON a ANP) Ole Na OLcapr ENDER apr OGRAMARS
Tipos de variables en JavaScript. Numéricas (Number).
VARIABLES NUMERICAS EN JAVASCRIPT.
A diferencia de muchos otros lenguajes de programacién (como Java, C, C++, Visual Basic, ete.),
JavaScript no diferencia distintos tipos de variables numéricas. Todos los nimeros en JavaScript son
tratados como un tipo numérico nico, el tipo Number, que “agrupa” a los tipos int, integer, double,
float, single, etc. que se utilizan en otros lenguaies.
VARIABLES NUMERICAS JAVASCRIPT
JavaScript permite representar cualquier numero que sea necesario, Ten en cuenta que esto no
significa que se puedan usar niimeros “descomunales” porque un computador siempre ha de tener un
limite. Pero el limite de JavaScript es del orden de +1.7976931348623157 x 10°" para nimeros
grandes(esto son millones de trillones, un numero tan grande que nunca tendremos problemas porque
nunca vamos a tener que usar un nimero superior a esta cifra) y del orden de +5 x 10° para nimeros
pequefios (esto supone que se puede trabajar con niimeros con cientos de decimales, y en la practica
nunca vamos a necesitar tanta precisién, con lo cual nunca tendremos problemas por usar ntimeros
muy pequefios 0 con gran nimero de decimales).
Para indicar que un nmero es negativo se precede del signo menos.
Los ntimeros decimales se escriben utilizando el punto (.) como separador. Si la parte entera de un
numero es el cero, se admite omitir el cero. Es decir, 0.55 y .55 son ambos admitidos.
También se admite la notacién basada en indicar un nimero seguido de E y la potencia de 10 a la que
se debe elevar. También se admite usar la e minscula, Por ejemplo 1.2£2 6 1.2e2 equivale a 1.2*10° =
1.2*100 = 120. Esta notacién permite escribir nimeros muy grandes o muy pequefios sin tener que
escribir todas las cifras. Por ejemplo 3.2345234565E20 equivale a 323452345650000000000 6
3,2345234565e-10 equivale a 0.00000000032345234565
El uso de numero decimales puede presentar en ocasiones problemas debido al redondeo decimal,
como veremos. Este problema no es exclusivo de JavaScript, sino que es algo que afecta a numerosos
Ienguajes de programacién.
\Veamos un ejemplo. Escribe este cédigo y guardalo en un archivo de extensién html (puedes cambiar la
ruta de la imagen si quieres):
© [Link], 2006-2029Tipos de variables en Javascript. Numéricas (Number) APP ENDER apr OGRAMARS
chtmb>
Curso JavaScript [Link]«/title>
-/Aqui un parrafo de texto situado antes de la imagen, dentro de un div contenedor
Aqui otre pérrafo de texto.
Javascript es un lengua utlzado para dotar de efectos dindmicos alas paginas web.
=!Notepades,
Visualiza el resultado y comprueba que la pagina web se muestra con normalidad y que JavaScript se
ejecuta con normalidad cuando pulsas sobre la imagen.
El resultado esperado es que se muestre lo siguiente (compruébalo):
cadena texto vale © [Link]
cadena texto es "[Link]'
cadena texto ahora contiene Letra A: A, 0 con tilde: 6 sigue Caracter \ igualmente \ seguido de tres
saltos de linea
Prosigue comilla simple ' y doble "
Introduzca un texto por favor: andamio
El texto introducido fueandamio con longitud de 7 caracteres
La longitud de extraordinario es de 14 caracteres
La longitud de la cadena vacia es de 0 caracteres
© [Link], 2006-2029Tinos de variables en JavaScript. tring (Texto). “apr eENDER apr OGRAMARS
EJERCICIO
Consulta en internet cual es el cédigo unicode que corresponde al cardcter 1 (simbolo matematico Fi) y
usando el cédigo muestra por pantalla el mensaje “El ntimero n vale 3.1416".
Para comprobar si es correcta tu solucién puedes consultar en los foros [Link],
Proxima entrega: CU01115€
Acceso al curso completo en [Link] ~ > Cursos, o en la direccién siguiente:
[Link]
© [Link], 2006-2029ar =
[Link]capP ENDER apr OGRAMARS
Declaracién de variables JavaScript. Variables booleanas.
DECLARACION DE VARIABLES JAVASCRIPT. VARIABLES BOOLEANAS.
Aunque no es obligatorio, se recomienda declarar siempre las variables antes de usarlas en JavaScript.
Como sabemos esta declaracién se hace escribiendo la palabra clave var seguida del nombre de
variable. También se pueden declarar multiples variables en una sola linea escribiendo var y a
continuacién los nombres de las variables separados por comas,
Por ejemplo podemos declarar:
var coches;
var motos;
var trenes;
Obbien hacerlo en una sola linea de esta manera: var coches, motos, trenes;
También se permite la inicializacién de variables en linea. Por ejemplo podriamos escribir:
var coches = 32, motos = 9, trenes = 12;
De este modo quedan las variables inicializadas en el mismo momento de deciaracién.
Aunque la declaracién de variables no es obligatoria, se recomienda siempre declarar las variables. Si se
trata de hacer uso de un nombre de variable que no existe para asignérselo a una variable si existente,
se produce un error y el cédigo JavaScript deja de funcionar. Ejemplo:
function mostrarMensaje1() {
var mayorDe25 = false;
‘mayorDe25 = variablelnexistente; //Genera un error y el cédigo no se ejecuta
alert (‘Mostrar un mensaje no se ejecuta’);
Importante: un “pequefio error” al escribir un nombre de variable puede generar un error (no
visualizado al no aparecer mensaje de error) y hacer que nuestro cédigo JavaScript deje de funcionar.
VARIABLES BOOLEANAS
En JavaScript una variable es booleana si se le asigna como contenido true 6 false. Estas variables se
usan para almacenar informacién del tipo si / no, cumple / no cumple, verdadero / falso, existe / no
existe, es decir, informacién que tnicamente puede tener dos estados.
Ejemplo: var casado = true;
true y false son palabras clave JavaScript. Por tanto no podemos usarlas como nombres de variables. Si
escribiéramos true = 25; el intérprete del navegador interpretaria que existe un error, por lo que el
© [Link], 2006-2029Declaracion de variables JavaScript Variables booleanas. SAPP ENDER apr OGRAMARS
cédigo JavaScript no se ejecutaré (sin embargo, no veremos ningtin mensaje de error, simplemente
veremos que JavaScript no funciona).
Las variables booleanas normalmente se emplean para evaluar si se cumplen condiciones mediante
instrucciones if else, como veremos mas adelante.
Un razonamiento usando variables booleanas puede ser <>.
Las variables booleanas toman valor true o false. Puede considerarse que existe un equivalente
numérico (1 para true y 0 para false), pero debemos decidir si queremos operar con niimeros, usar una
variable numérica, y si queremos operar con los valores true y false, operar con variables booleanas.
En general toda variable tiene un equivalente numérico y un equivalente en forma de texto. Por
ejemplo el equivalente en forma de texto del valor true seria ‘true’ y se puede obtener escribiendo el
nombre de la variable seguido de toStringt). Por ejemplo [Link]() devuelve la cadena de texto
‘true’, que es diferente del valor booleano true.
\Veamos un ejemplo. Escribe este cédigo y guardalo en un archivo de extensién html (puedes cambiar la
ruta de la imagen si quieres):
Curso JavaScript [Link]
-AAqui tun pérrafo de texto situado antes de la imagen, dentro de un dv contenedor
Aqui otro pérrafo de texto.
JavaScript es un lengua utiizado para dotar de efectos dindmicos alas paginas web.
‘[Link]/titie> Cursos, o en la direccién siguiente:
htto://[Link]/[Link]?option=com_content&.view=category&id=[Link]=206
© [Link], 2006-2029apr =
NaN Pa ec ARR aeL YL)Operadores ligicos yrelacionales JavaScript. Valores de verdad. ‘apr ENDER apr OGRAMARS
OPERADORES LOGICOS PRINCIPALES EN JAVASCRIPT
En JavaScript disponemos de los operadores logicos habituales en lenguajes de programacién como son
“es igual”, “es distinto”, menor, menor o igual, mayor, mayor o igual, and (y), or (0) y not (no). La
sintaxis se basa en simbolos como veremos a continuacién y cabe destacar que hay que prestar
con = porque implican distintas cosas,
atencién ano confundir
OPERADORES LOGICOS Y
RELACIONALES
Disve ale iaTAV Ke)
Es igual
Es estrictamente igual
! Es distinto al=b
Es estrictamente distinto
Menor, menor 0 igual, mayor,
SS mayor o igual
Ba Operador and (y) a&&b
' Operador or (0) allb
! Operador not (no) la
‘Operadores logicos y relacionales principales en JavaScript,
La sintaxis coincide con la empleada en otros lenguajes de programacién.
‘Ademas de los operadores habituales existen los operadores === que se interpreta como “es
estrictamente igual” y !== que se interpreta como “no es estrictamente igual”. Estos operadores
resultan un poco mas complejos de comprender por lo que volveremos a hablar de ellos mas adelante.
De momento tener en cuenta que si una variable contiene textol= “1” y hacemos la comparacién
1, obtendremos false, es decir, que no es igual (porque un texto no es igual a un numero).
devolverd true ya que esta comparacién no es estricta y
textol =
Sin embargo una comparacién como texto
© [Link], 2006-202cperdoresleeorvieaconalesinscipt Valresdeverte. __—= k) tiene tres
evaluaciones: la primera comprueba si la variable a es igual a b. Si no se cumple esta condicién, el
resultado de la expresién es falso y no se evaluan las otras dos condiciones posteriores.
En un caso como (a
Curso lavaScript [Link]«/title>
function mostrarMensajet!){
vara, b, ¢.d, eTexto; a= 3;b=5;c= true; d= false; eTexto
‘alert (Valor de verdad pare avb. ces:'+ (atb:
alert (Valor de verdad para avb:
alert (Valor de verdad para c==des:"+ (c==d)};
alert (Valor de verdad para c&&d es:'+ (88d);
‘alert (Valor de verdad para cl | es:'+ (cl);
‘alert (Valor de verdad pare aes: (Ia)
alert (Valor de verdad para eTexto === 1:'+ (eTexto === 1);
‘alert (Valor de verdad para eTexto ==1:'+ (eTexto == 1);
‘alert (Valor de verdad para Zapato < avellano es:'+ Zapato'Aqui un parrafo de texto situado antes de la imagen, dentro de un div contenedor
Aqui otre pérrafo de texto.
JavaScript es un lenguale utiizado para dotar de efectos dindmicos alas paginas web.
Notepades,
Visualiza el resultado y comprueba que la pagina web se muestra con normalidad y que JavaScript se
ejecuta con normalidad cuando pulsas sobre la imagen.
El resultado esperado es que se muestre lo siguiente (compruébalo):
Valor de verdad para atb == 8 &8& a-b ==1 es: false (Aceptar)
Valor de verdad para a+b == 8 && a-b ==-2 es: true (Aceptar)
Valor de verdad para c == d es: false (Aceptar)
Valor de verdad para c&&d es: false (Aceptar)
Valor de verdad para c| |d es: true (Aceptar)
Valor de verdad para !a es: false (Aceptar)
Valor de verdad para eTexto === 1: false (Aceptar)
Valor de verdad para eTexto == 1: true (Aceptar)
Valor de verdad para Zapato < avellano es: true (Aceptar)
© [Link], 2006-2029Operadores igicos vrelacionales JavaScript. Valores de verdad. “apr ENDER apr OGRAMARS
Importante: recordar que cuando se quieran realizar comparaciones de igualdad hay que usar el
operador == y no el operador =.
EJERCICIO 1
Dadas las variables de tipo entero con valores A = 5, B = 3, C = -12 indicar si la evaluacién de estas
expresiones daria como resultado verdadero o falso:
a)A>3
byA>c
OAc
d)B3&&B>38RC<3
hate
p)A>3&& B>=38&C<-3
Crea un script donde declares estas variables, les asignes valores y muestres por pantalla el valor de
verdad que tienen cada una de las expresiones antes indicadas. éCoincide lo que se muestra con
pantalla con lo que tt esperarias que se mostrara? Puedes comprobar si tus resultados son correctos
consultando en los foros [Link].
EJERCICIO 2
Crea un script donde declares dos variables a y b y fuerces a que ambas contengan valor NaN. Ahora
realiza las comparaciones a
este resultado?
a Qué resultados obtienes? 2A qué crees que se debe
Proxima entrega: CUO1118€
‘Acceso al curso completo en [Link] -- > Cursos, 0 en la direccién siguiente:
h[Link]
© [Link], 2006-2029apr =
[Link]Operadores lagicos yrelacionales JavaScript. Valores de verdad. ‘apr ENDER apr OGRAMARS
OPERADORES EXTRA EN JAVASCRIPT
En JavaScript disponemos ademés de la asignacién tracional basada en = de algunos operadores menos
habituales como incremento unitario (++), decremento unitario (--), asignacién compuesta de suma (+=)
y asignacién compuesta de multiplicacién
. asignacién compueta de resta
etsy DESCRIPCION EaravTare) eT RUN
= Asignacién
Suma lo indicado a=atb
Resta lo indicado aza-b
Multiplica por lo b a=atb
indicado
Calcula el médulo por lo a%=b a=a%b
indicado
; Incremento unitario +372 azatl
++ (anterior)
antes de operar at2
ji Incremento unitario ant? atz
++ (posterior)
después de operar azatl
i Decremento unitario ~at2 aza-1
(anterior)
antes de operar at2
. Decremento unitario at2
-- (posterior)
después de operar aza-1
Operadores en JavaScript
© [Link], 2006-202cperdores leer yieaconalesinvscipt Valresdeverte. _— 5 implicara que a vale false porque 3 > 5 es falso.
++ y ~ son sélo validos para variables numéricas y sirven para incrementar una unidad el valor de la
variable. Dependiendo de dénde se coloquen (antes o después de la variable) el resultado del calcul
puede diferir debido al momento en que se ejecuta la adicién de la unidad.
Los operadores +=, -= y *= son formas abreviadas de escribir operaciones habituales.
Tener en cuenta que ++, ~, +=, = y "= son expresiones que siempre se aplican sobre variables. Por
ejemplo no es vilido escribir 2++ porque 2 no es una variable. Todas estas operaciones pueden
sustituirse por otra equivalente mas evidente. Muchos programadores prefieren no usar estos
operadores porque hacen menos legible el cédigo. A otros programadores les gusta usarlos porque les
ahorra escribir. Nosotros preferimos no usarlos, pero es cierto que los puedes encontrar cuando tengas
que revisar el c6digo escrito por otra persona,
EJEMPLO
\Veamos un ejemplo. Vamos a usar dos pequefias novedades.
Number (nombreVariable); para
indicarle a JavaScript que considere la variable como de tipo numérico y no de tipo texto. De esta forma
Una vez pedido un ntimero al usuario usaremos nombreVariable
al usar el operador + se ejecutard la operacién de suma en lugar de la operacién de concatenacién de
cadenas de texto,
‘Ademas usaremos la sentencia [Link]('cadena de texto a introducir como HTML en el
documento’); para introducir HTML en el documento. Hablaremos de esta sentencia més adelante, de
‘momento sélo nos interesa saber que sirve para introducir cédigo HTML en el documento.
Fijate cémo en este ejemplo se usan tres scripts cuya ejecucién no est en funcién de la ocurrencia de
un evento como un click de un usuario, sino que se ejecutan automaticamente cuando carga la pagina
web, en un determinado orden.
Escribe el siguiente cédigo y guardalo en un archivo de extensién html:
© [Link], 2006-2029cperadores leer yieaconalesinscipe Valresdeverte. _— «tite>Curso JavaScript [Link]/titie>
body (background-color: #FAEBD7; font family: sans-serif line-height: 1.3;}
div (border-style: sold; margin: 15px; padding: 10px; float: left)
Operadores de asignacin compuestos
"),
[Link] ['Asignacién compuesta de resta: a-= b equivale a= a-b "};
[Link] (Ahora el valor dea es:'+a + ")
[Link] ('Asignacién compuesta de muttiplcacién: a*=b equivale a=a* bebr/>");
[Link] (Ahora el valor de a es:'+ 2+ or/> ");
[Link] (Ahora el valor de a es:"+ a )cbr/> '
a= Inicio; a%=b;
[Link] (‘Asignacién compuesta de médulo: 2 %= b equivale a = a % b ");
<[seript>
i+ "ebr/>'y
fat ' bets be "ebe/> ;
Visualiza el resultado y comprueba que la pagina web se muestra con normalidad y que JavaScript se
ejecuta con normalidad.
© [Link], 2006-2029cperdores leer vieaconalesinscipe Valresdevertea. <2) PENDER AP OGRAMARE
EI resultado esperado es que se muestre lo siguiente (compruébalo introduciendo 4 y 2 como
auimeros):
Operador ++ {anterior}: ++a * b == 10
(Ahora el valor de aes: 5)
Operador ++ (posterior): at+ * b
(Ahora el valor de aes: 5)
Operador — (anterior): ~a * b
(Ahora el valor de a es: 3)
Operador ~ (posterior): a--*
(Ahora el valor dea es: 3)
Overadores di i6n compuestos
Valores iniciales: a = 4, b
Asignacién compuesta de summa: a +=b equivale a
(Ahora el valor dea es: 6)
Asignacién compuesta de resta: a -= b equivale a= a-b
(Ahora el valor de a es: 2)
Asignacién compuesta de multiplicacién: a *= b equivale a =a * b
{Ahora el valor de a es: 8)
Asignacién compuesta de division: a /= b equivale a
(Ahora el valor dea es: 2)
Asignacién compuesta de médulo: a %:
(Ahora el valor de a es: 0)
+b
/b
equivale a= a%b
EJERCICIO 1
a) Describe paso a paso lo que hace el cédigo anterior, indicando en qué orden se carga cada cosa
{instrucciones HTML, instrucciones CSS, instrucciones JavaScript). Por ejemplo, ése carga el html
<
Operadores de incremento en el instante en que solicitamos al navegador que muestre la
pagina web? En qué orden se ejecutan los scripts?
b) Introduce errores en los scripts de modo que estos no se ejecuten éQué se visualiza en la pagina
web?
¢) Introduce 0 y 0 como ntimeros en el ejemplo anterior. éCuantas veces el resultado de las operaciones
es NaN? éPor qué?
Para comprobar tus respuestas son correctas puedes consultar en los foros [Link].
Proxima entrega: CU01119E
‘Acceso al curso completo en [Link] -- > Cursos, o en la direccién siguiente:
htto://[Link]/[Link]?option=com_content&view=categorv&iid=[Link]=206
© [Link], 2006-2029ar =
[Link]ite, ef asciptConddonslesesraurededecsion. _—
~—— No (Sino)
—
Instruc Instruccién B
Instruccién n Instruccién Z
y +
J
La cldusula else (no obligatoria) sirve para indicar instrucciones a realizar en caso de no cumplirse la
condicién. JavaScript admite escribir un else y dejarlo vacio: else { }. El else vacio se interpreta como
que contemplamos el caso pero no hacemos nada en respuesta a él. Un else vacio no tiene ningtin
efecto y en principio carece de utilidad, no obstante a veces es usado para remarcar que no se ejecuta
ninguna accién cuando se alcanza esa situacién.
Cuando se quieren evaluar distintas condiciones una detrés de otra, se usa la expresién else if { }. En
este caso no se admite elseif todo junto como en otros lenguajes. De este modo, la evaluacién que se
produce es: si se cumple la primera condicién, se ejecutan ciertas instrucciones; si no se cumple,
comprobamos la segunda, tercera, cuarta... n condicién. Sino se cumple ninguna de las condiciones, se
ejecuta el else final en caso de existir.
© [Link], 2006-2029I, eof vc Condconles scr de dain ajir ENDER‘@prOGRAMARES
Uff sencilo
if (admitido:
true) {alert ("Se ha admitido el valor"); )
Uff else sencillo
if ( admitido == true) (
alert ("Se ha admitido el valor");
Jelse(
alert ("No se ha admitido el valor");
}
/fifcon else ify clausula final else
if (DesplazamientoX == 0 && DesplazamientoY == 1) {
alert ("Se procede a bajar el personaje 1 posicién");
t
else if (Desplazamientox == 1&8 DesplazamientoY = 0) {
alert ("Se procede a mover el personaje 1 posicién a la derecha"); }
else if (Desplazamientox ==-1 && DesplazamientoY == 0) {
alert ("Se procede a mover el personaje 1 posicién a la izquierd:
}
else (
alert ("Los valores no son vélidos");
}
La expresién dentro de paréntesis es una expresién booleana. Llamamos expresién booleana a una
expresién que solo tiene dos valores posibles: verdadero (true) 0 falso (False)
Es importante distinguir la comparacién que realizamos con el operador == de la asignacién que
realizamos con el operador =. Confundirlos nos generard errores que haran que el cédigo JavaScript no se
ejecute 0 problemas de légica en el cédigo. Recuerda que siempre que tengas que comparar con un
operador, has de usar lugar de
La condicién a evaluar puede ser un simple nombre de variable. Por ejemplo:
if (antiop) {alert (‘nombre se evalué a verdadero');}
En este caso se comprueba el valor booleano (0 equivalente booleano) de antiop. Si nombre es de tipo
String y es la cadena vacia, su valor equivalente es falso y no se ejecutarén las instrucciones dentro del
if. Si antiop es un niimero se considera que equivale a false si su valor numérico es 0, 0 que equivale a
true si su valor numérico es distinto de cero (incluido NaN). Para cadenas de texto, la cadena vacia se
considera equivale a false y cualquier otra cadena se considera que equivale a true.
Se admite omitir las llaves después de la condicién si solo se va a incluir una sentencia a ejecutar. Por
ejemplo: if (nombre) alert (‘nombre se evalué a verdadero’
‘Sin embargo, recomendamos incluir las llaves siempre después de un if porque hace el cédigo mas facil
de seguir y mas claro.
© [Link], 2006-2029I, eof vac Condon scr de dain
-title>Curso JavaScript [Link]/title>
function mostrarMensajet!){
var nombre, edad;
‘nombre = prompt (Por favor introduce tu nombres);
If (nombre =="") { alert (No has introducido ningtin nombre’); }
else (alert Hola ‘snombre +’. Blenvenido a esta pagina web.’ }
edad = prompt ZCul es tu edad”);
edad = Number(edad);
if (edad >3 && edad <10) (alert (‘Eres un nifio’)
cbse if (edad>=10 && edad «18) (alert ("Eres un jovencito.);)
cls if (edad >=18 && edad < 90) alert ‘Eres mayor de edad)
cls if (edad >=30) {alert (Tienes muchos afos encima
else (alert('No has introducido un valor vido de edad {"+edad+');}
)
<Aqut un parrafo de texto situado antes de la Imagen, dentro de un div contenedor
Aqui otro pérrafo de texto.
JavaScript es un lengua utilized para dotar de efectos dindmicos alas paginas web,
jotepades,
Visualiza el resultado y comprueba que la pagina web se muestra con normalidad y que JavaScript se
ejecuta con normalidad cuando haces click sobre la imagen.
EI resultado esperado es que se muestre lo siguiente (compruébalo introduciendo Juan y 96 como
entradas de usuario)
Por favor introduce tu nombre: Juan (Aceptar)
Hola Juan. Bienvenido a esta pagina web. (Aceptar)
éCual es tu edad? : 96 (Aceptar}
Tienes muchos afios encima... (Aceptar)
© [Link], 2006-2029Itelse, else if Javascript. Condicionales estructuras de decisién, “apr ENDER apr OGRAMARS
EJERCICIO
Crea un script que pida al usuario el didmetro de una rueda y su grosor (en metros) y a través de
condicionales if realice las siguientes operaciones:
a) Si el diametro es superior a 1.4 debe mostrarse el mensaje “La rueda es para un vehiculo grande” Si
es menor 0 igual a 1.4 pero mayor que 0.8 debe mostrarse el mensaje “La rueda es para un vehiculo
median”. Sino se cumplen ninguna de las condiciones anteriores debe mostrarse por pantalla el
‘mensaje “La rueda es para un vehiculo pequefio”.
b) Si el diémetro es superior a 1.4 con un grosor inferior a 0.4, 6 si el didmetro es menor o igual a 1.4
pero mayor que 0.8, con un grosor inferior a 0.25, debers mostrarse el mensaje “El grosor para esta
rueda es inferior al recomendado”
Ejecuta el cédigo y comprueba sus resultados, Para comprobar si es correcta tu solucién puedes
consultar en los foros [Link].
Proxima entrega: CU01120E
‘Acceso al curso completo en [Link] ~ > Cursos, o en la direccién siguiente:
[Link]
© [Link], 2006-2029apr =
[Link]apr ENDER apr OGRAMARS
switch JavaScript. Decisién entre distintas alternativas.
CONDICIONAL DE SELECCION SWITCH EN JAVASCRIPT. EJEMPLO DE APLICACION.
La instruccién switch es una forma de expresién de un anidamiento miiltiple de instrucciones if... else.
Su uso no puede considerarse, por tanto, estrictamente necesario, puesto que siempre podré ser
sustituida por el uso de if. No obstante, a veces resulta ttil al introducir eficiencia y mayor claridad en el
cédigo.
La sintaxis sera (expresién ser normalmente una variable cuyo contenido queremos evaluar, pero
puede ser una operacién matemtica, una expresién booleana, etc.):
switch (expresién) {
case valor1!
instrucciones;
break;
case valor2:
instrucciones;
break;
default:
sentencias;
break;
‘switch (expresién) {
case valor1;
case valor2:
case valor3:
instrucciones;
break;
case valord!
instrucciones;
break;
default:
sentencias;
break;
© [Link], 2006-2029sich eigen ene dts starts ~)
break es opcional (pero en general recomendable) y provoca que una vez encontrada una coincidencia
termine la evaluacién de casos. Sino se incluye, se evaluarian el resto de casos (ejecutdndose si fueran
ciertos). De no incluirse break, podria producirse que se ejecuten dos o mas casos.
La cléusula default es opcional y representa las instrucciones que se ejecutaran en caso de que no se
verifique ninguno de los casos evaluados. El ultimo break dentro de un switch (en default si existe esta
clausula, 0 en el tiltimo caso evaluado si no existe default) también es opcional, pero lo incluiremos
siempre para ser metédicos.
switch realiza las comparaciones usando el operador === (igual estricto). Se permite evaluar tanto
ntimeros como cadenas de texto 0 valores booleanos. Switch solo permite evaluar valores concretos de
la expresién: no permite evaluar intervalos (pertenencia de la expresién a un intervalo 0 rango) ni
expresiones compuestas. Cédigo de ejemplo:
/[®jemplo de uso switch JavaScript [Link]
Function mostrarMensajel() {
switch (mes) {
case 1:
alert ("El mes es enero"
break;
‘ase 2: alert ("El mes es febrero"); break;
case 10: alert ("El mes es octubre"); break;
default: alert ("EI mes no es enero, febrero ni octubre"); break;
© [Link], 2006-2029sich eigen ene dts starts 18)
donde la expresién devuelve un booleano, 0 case ‘armario': alert ("Ha introducido armario"); break;
donde se evaliia la igualdad con un texto.
ESEMPLO
Escribe el siguiente cédigo y guardalo en un archivo de extensién html (puedes cambiar la ruta de la
imagen si lo deseas):
Curso JavaScript [Link]
<[head>
-
Pulsa adelante o atrésc/p>
*utt">
{1 && movimiento == 'atra! || numerolmayendctual
humor informatico_fote jpg’
contenedor">
* moverimagen(‘atras)> << Atrés
‘moverlmagen(‘adelante)" >Adelante >>>
© [Link], 2006-2029Acceder a elementos JavaScript. getlementByi. APP ENDER apr OGRAMARS
EJERCICIO
[Link] que el cédigo anterior te permite cambiar la imagen que se muestra haciendo uso de los
botones.
2. En el cédigo anterior hay una declaracién de variables (var numerolmagenActual =9;) que no esta
dentro de una funcién. Por qué crees que se ha hecho esto asi? Prueba a colocarla dentro de la
funcién, comprueba qué ocurre y razona el por qué
3. Modifica el cédigo anterior para que en lugar de definirse src, alt y title para cada imagen dentro de
los if, se definan estos valores usando arrays declarados en cabecera de la funcién. Por ejemplo
tendremos que:
valorSrc{0] = '[Link]
camiseta_6_humor_informatico_foto.jpg';
Las asignaciones dentro de los if deberdn hacer referencia a los elementos del array y el resultado de
ejecucién debera ser el mismo que se obtenia con el cédigo original
4, Duplica todo el cédigo HTML existente dentro de la etiqueta body, de modo que se muestren dos
veces el texto, dos veces la imagen y dos veces los botones. éCuando pulsas un botén situado debajo a
la imagen inferior qué ocurre? éPor qué ocurre esto?
Para comprobar si tus respuestas son correctas puedes consultar_ en los foros
[Link].
Proxima entrega: CU01128E
Acceso al curso completo en [Link] ~ > Cursos, o en la direccién siguiente:
htto://[Link]/[Link]?option=com_content&view=categorvBiid=[Link]=206
© [Link], 2006-2029apr =
ON aa ec ARR aeL YL)Acceder a elementos JavaScript. getElementsByTagName. “APP ENDER apr OGRAMARS
GETELEMENTSBYTAGNAME
EI acceso a un nodo concreto del DOM usando getElementByld es muy frecuente, pero hay otras
maneras de acceder a los nodos del DOM. Una de ellas es usando
getElementsByTagName(‘etiquetaBuscada’). Esta funcién nos devuelve un array conteniendo todos los
nodos DOM cuya etiqueta coincide con etiquetaBuscada.
El orden en que apareceran los elementos en el array (comenzando con indice cero) es el mismo en el
que aparezcan en el cédigo de la pagina web. Ejemplo:
var elementosDiv = document getElementsByTagName(‘div');
Nos devolverd un array con todos los nodos de tipo element cuya etiqueta sea div, empezando con
indice cero: elementosDiv{0}, elementosDiv{1], elementosDiv{2], elementos div(3]... hasta el indice que
sea necesario para abarcar tantos elementos div como haya en el cédigo. Podemos obtener los nodos
de cualquier tipo de etiqueta: div, span, p, label, input, hi, h2, ete.
Tener en cuenta que escribimos [Link]('div’) porque queremos empezar la
biisqueda desde el nodo raiz del DOM, es decir, el nodo document (asi exploramos todos los nodos)
Podriamos empezar la busqueda por otro nodo si resultara de interés.
CAMBIAR ESTILOS CSS CON JAVASCRIPT
Una posibilidad interesante de JavaScript serd poder modificar de forma dinamica el aspecto de la web
modificando el CSS asociado. La sintaxis para poder ejecutar modificaciones de estilo seré la siguiente:
[Link] = 'valorPropiedad’;
Un ejemplo seria: elementosObtenidos{1].[Link] = '#FF9933';
Donde elementosObtenidos{1 corresponde a un nodo del DOM. Y backgroundColor es la propiedad
CSS que deseamos cambiar pero expresada con sintaxis JavaScript. Si te fijas, la sintaxis CSS es
background-color mientras que la sintaxis JavaScript es backgroundColor. En este caso son similares,
pero no exactamente iguales. En otros casos si hay coincidencia. Mas adelante veremos una tabla de
equivalencia entre propiedades CSS
© [Link], 2006-2029Acad mento nec etree Toga ajir ENDER@prOGRAMARES
Para ver la aplicacién del acceso con getElementsByTagName y el cambio de propiedades CSS con
JavaScript escribe el siguiente cédigo y comprueba sus efectos al visualizar la pagina:
chead>
Elemplo DOM - [Link]/title>
body (background-color:white; font-family: sans-serif)
label {color: maroon; display:block; padding'Spx:}
abecera">
-
<
-Si quleres contactar con nosotros envianos este formulario relleno:
Nombre:
Apellidos:
Correo electrénico:
El resultado esperado es que al cargar la pagina los elementos label del form se muestren con un color
de fondo blanco. Al hacer click para escribir en el formulario, se mostrara cada uno de los elementos
con un color de fondo ligeramente distinto porque asi lo hemos establecido a través del cédigo.
© [Link], 2006-2029Acad mento Sci etree VToshne _apr ENDER apr OGRAMAR=
Portal web [Link]
Didactica y divulgacion de la programacion
Suites eartactr con nosctosenvanos ast farmaan
vale
==
Portal web [Link]
Didactica y divulgacion de la programacion
Squires eortactar con nosciosenfangs este armani
lon
EJERCICIO
Modifica el cédigo anterior para que en vez de pasarse como parametro label pases como parametro:
div, input, h1 y h2. éSe usan los tres indices del array en todos los casos? ¢Qué ocurre si aparecen mas
indices que elementos realmente existen en el documento html?
Modifica el cédigo anterior para introducir div que simule un botén con el texto "Cambiar a inglés” y
otro div simulando un botén “Cambiar a espafiol”. Al pulsar sobre el botén cambiar a inglés, debes
acceder a los nodes del DOM de tipo label y usando relaciones de parentesco entre nodos acceder a
aquellos nodos cuyo nodeValue es Nombre:, Apellidos:, y Correo electrénico: y cambiar su nodeValue
por Name:, Surname: y e-mail
Orientacién: tendrés que conocer la estructura del DOM para poder acceder a los nodos con el
contenido texto que nos interesa, ya que estos nodos son descendientes de los nodos label.
Para comprobar si tus respuestas son correctas puedes consultar en los foros
[Link].
Proxima entrega: CU01129E
‘Acceso al curso completo en [Link] -- > Cursos, 0 en la direccién siguiente:
htto://[Link]/index,pho?option=com_content&view=catezorv&id=78&.lternid=206
© [Link], 2006-2029apr =
[Link]Sinan vat aa propedades 3. Eualencs —