Fundamentos de JavaScript I
Fundamentos de JavaScript I
Fundamentos de javascript
ÍNDICE
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10
PA R T E I
1.1 Introducción
C O M E N Z A R
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
SOFTWARE NECESITARÁS…
VÍDEO
Usando los navegadores
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
1989
Tim Berners-Lee
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
1980 1989
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
Robert Cailliau
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
%!
% Ejemplo de código
/Courier findfont
En aquella época la mayoría de la gente utilizaba TeX y 20 scalefont
PostScript, lenguajes demasiado complicados teniendo % Cournier tamaño 20
en cuenta que debían ser leídos por todo tipo de Newpath
computadoras. Para llegar a un mayor número de 72 72 moveto
ordenadores y por tanto de usuarios se idearon tanto un % Cursor en la esquina
lenguaje de intercambio (HTML), como el protocolo de % inferior izquierda (72,72)
red (HTTP) más simples. (¡Hola mundo!) show
Showpage
Ejemplo de PostScript
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
HyperText Language
HT M L
Mark-up
Ésta se presenta como una aplicación de SGML (Standard Generalized Markup Language), un lenguaje muy general para
definir el formato de documentos.
El sistema se populariza y se convierte en un medio y un objetivo del mercado.
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
En 1995 Netscape es
considerado como el
estándar de facto para
los navegadores web,
con sólo algunos
competidores.
N E T S C A P E
En pocos años Internet Explorer recorta ventaja a Netscape (que se dedica casi en exclusiva al desarrollo de su
browser) hasta superarla en porcentaje de usuarios que utilizan su navegador.
En esos momentos la empresa de Bill Gates es líder del mercado de la informática llegando a ser acusada de
monopolizar el mercado con su sistema operativo Windows.
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
El código
propietario
¿Cómo repercute en los
usuarios?
Esto suponía, y aún supone (pues cambiar de
software es una elección personal) no acceder a
todos los contenidos de manera correcta. Buena
parte de los internautas no eligen el navegador, sino
que de alguna manera le viene "impuesto" (Microsoft
puso mucha voluntad en ello, y aún lo hace).
Como resultado nos encontramos con que cada
internauta debe tomar partido por alguno de los
navegadores, y eso considerando que sea
conocedor de la situación y que tenga los
conocimientos necesarios para elegir.
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
¿Y en los profesionales?
Para el diseñador el problema era especialmente
grave, y para las empresas desarrolladoras aún más.
Ante esta situación, no quedaba otro remedio que
hacer el trabajo por duplicado para que los sitios
webs se vieran en, al menos, los dos navegadores
más importantes, duplicando así el coste para las
empresas y el trabajo para diseñadores y
desarrolladores.
Obviamente, los costes de mantenimiento también
eran notablemente más altos.
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
E s t o suponía:
N E C E S I D A D D E
U N D O B L E I N V E R T I R
M AYO R C O S T E D E C O N S TA N T E M E N T E
T R A B A J O D E
M A N T E N I M I E N T O E N D I S E Ñ O Y
P R O D U C C I Ó N
D E S A R R O L LO
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
EL COMPROMISO
Bajo el nombre W3C se encuentra el Consorcio World Wide Web, una asociación internacional
formada por organizaciones que trabajan para desarrollar estándares web.
El compromiso adoptado por este organismo ha sido esencial para evitar la fragmentación del
mercado y, por tanto, de la Web.
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
¿Qué es el proyecto
WASP? [Link]
2007
Web responsive
En 2007 Apple introduce en el mercado su famoso iPhone. A partir de este momento
comenzamos a considerar los móviles como verdaderos dispositivos de acceso a la
Web.
Los diseños Web necesitan dar respuesta a nuevas pantallas, de menor resolución y
tamaño y diferente proporciones. La Web necesita ser flexible.
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
Aunque la tecnología o el concepto Media Query es casi tan antiguo como la propia Web, es en
este momento cuando su desarrollo adquiere especial importancia.
Media Queries es un módulo CSS3 que permite adaptar la representación del contenido a
características del dispositivo como la resolución de pantalla.
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
Responsive
web
Mobile First
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
1998
Estándares
Q u é s o n y p o r q u é t e n e r l o s
e n c u e n t a
Necesidades y ventajas
D I S E Ñ O S PA R A PÁ G I N A S M Á S USABILIDAD ACCESIBILIDAD
EL FUTURO ECONÓMICAS El usuario o usuaria Aseguraremos el
Los fabricantes se Con menor cantidad pasa a tener el acceso a todos los
han dado cuenta de de código que control de la usuarios.
la importancia de los redunda en menores apariencia del
estándares y los tiempos de carga y contenido:
adoptan. Estamos facilita la gestión, maquetación en
garantizando una mantenimiento y columnas, tamaño y
viabilidad a largo actualización. color de fuentes...
plazo de nuestros adaptándola, así, a
trabajos. sus necesidades.
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
Llegados a este punto, hay que tener en cuenta también que diseñar con
estándares economiza código. Veamos dos ejemplos:
ESTÁNDAR NO ESTÁNDAR
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
Usabilidad Accesibilidad
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
<p>Esto es un párrafo</p>
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
Atributo
Contenido
Valor
Apertura Cierre
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
¿Qué es un
Sitio Web?
Es un conjunto de páginas web que
enlazadas mediante hiperenlaces o
hipertextos.
Constituyen un conjunto homogéneo al
cual se puede acceder a través de su
dirección o URL a partir de su página de
Inicio.
Normalmente se considera un sitio web
a un conjunto de páginas integradas
con una temática uniforme y una
apariencia o estética homogénea.
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
CULTURA WEB Luis González
Nuevos medios y
Archivos y directorios
técnicas
Desde un punto de vista técnico, un sitio Web suele estar
compuesto por múltiples archivos que nuestro navegador descarga.
Aunque veamos un documento integrado, una pantalla única, lo
normal es que una página Web necesite de diferentes documentos
para su composición.
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
CULTURA WEB Luis González
Nuevos medios y
técnicas
En un sitio web, todos estos archivos y directorios
tendrán una ubicación en nuestro ordenador y en el
servidor (cuando le demos acceso a Internet) al que nos
referiremos con el término informático "directorio raíz" o
raíz del sitio (root).
VÍDEO
Creando un sitio
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
contenido y presentación.
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
Selector Declaración
main{
width:960px;
}
Propiedad Valor
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
VÍDEO
Aplicando CSS
INTRODUCCIÓN La evolución de la Web Estándares web HTML5 y CSS3 JavaScript
VÍDEO
Mostrando un ejemplo sencillo de Javascript
1.2 Introducción
a javascript
C O M E N Z A R
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
EL MODELO
Ejemplo://
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
Por supuesto las páginas web por las que navegamos también funcionan gracias al
modelo cliente-servidor.
Los lenguajes que se usan en dichas webs podemos diferenciarlos en dos tipos:
L O S Q U E L O S Q U E S E
N E C E S I TA N E L E J E C U TA N
S E R V I D O R PA R A D I R E C TA M E N T E E N
F U N C I O N A R E L C L I E N T E
No se tienen en
Se distinguen las No hace falta acabar
cuenta los espacios Se pueden incluir
mayúsculas y cada sentencia con
en blanco y las comentarios.
minúsculas. punto y coma (;)
nuevas líneas.
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
<html>
<head>
Incluir JavaScript </head>
Igual que CSS que ocurre con CSS podemos incorporar Javascript de tres maneras diferentes:
E N U N D O C U M E N T O E X T E R N O , enlazado mediante:
<script type=“application/javascript" src=“[Link]"></script>
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
<!DOCTYPE html>
Incluir JavaScript <html lang="es">
<head>
Emplearemos el método entre las etiquetas
<script></script> para pequeño de código o cuando se <title>Saludo</title>
quieren incluir instrucciones específicas en un documento </head>
concreto que maticen o concreten instrucciones generales
<body>
para el sitio completo.
Su principal desventaja es que solo afecta al documento en <p id="saludando"></p>
el que está incluido. <script>
[Link]("saludando")
En cuanto a al atributo type, en la actualidad no es necesario
especificar la versión de javascript que usamos como ocurría .innerHTML = "Bienvenido al curso.";
antes. </script>
En la rfc4329 Se establece como posibles
</body>
application/javascript o application/ecmascript.
En cualquier caso en HTML5 no es necesario por defecto. </html>
En el se escribe la frase “Bienvenido al curso” dentro de un párrafo.
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
<!DOCTYPE html>
<html lang="es">
<head> Documento “[Link]”
<title>Saludo</title>
<script type="application/javascript" function saludo(){
src="js/[Link]"></script> [Link]("saluda
</head> ndo").innerHTML = "Bienvenido al
<body onload="saludo()"> curso.";
<p id="saludando"></p> }
</body>
</html>
En este ejemplo se ejecuta la misma acción que en la pantalla anterior, pero
en esta ocasión JavaScript no se encuentra en el mismo documento, sino en
una hoja externa.
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
</script>
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
VÍDEO
Mostrando los diferentes métodos de inserción
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
P R E G U N T A
En línea
En el documento
En un archivo externo
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
<script>
[Link]("saludando").innerHTML = "Bienvenido
al curso.";
</script>
<noscript>
<p> Estás viendo este texto porque tu navegador no puede
interpretar javaScript. </p>
</noscript>
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
VÍDEO
Mostrando como se deshabilita Javascript
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
Las variables son conceptos fundamentales en programación. Son espacios de memoria en los que
guardamos información. Lo que hacemos es dar nombre a un valor para poder reusarlo, actualizarlo o
simplemente registrarlo.
Estas son algunas de sus características:
[…]
<p id="saludando"></p>
<script>
var valor;
valor = "Hola ¿cómo estámos?"
[Link]("saludando").innerHTML = valor;
</script>
[…]
[…]
<p id="saludando"></p>
<script>
var valor "Hola ¿cómo estámos?“;
[Link]("saludando").innerHTML = valor;
</script>
[…]
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
1 2 3
El nombre únicamente El primer carácter no No usar palabras
puede incluir letras, puede ser un dígito. reservadas porque
dígitos, o los símbolos $ generaría un error, por
y _. ejemplo: return, class, let
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
let mensaje;
mensaje = '¡Buenos días!';
mensaje = '¡Buenos noches!'; // valor modificado
[Link](mensaje);
VÍDEO
Uso de variables. Cómo usar la consola
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
P R E G U N T A
Sí
No
TIPOS DE
PRIMITIVOS OBJETOS A R R AY S
• String
• Number Dedicaremos una sección especial y extendida a los objetos
y Arrays más adelante.
• Bigint
• Boolean
• Symbol
• Null
• Undefined
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
• Symbol alert( `dos mas dos es ${2 + 2}` ); //dos más dos es 4
• Null
Podemos escribir el carácter de comillas invertidas pulsando la tecla “alt” +
• Undefined las teclas “9” seguidas de “6”.
También puedes usar el acento grave que el teclado QUERTY español. L o
encontrarás a la derecha de la “P “
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
PRIMITIVOS Recordemos que para representar un número decimal usaremos “.” y no “,”
como tradicionalmente hacemos en España y otros países-
• String
<script>
• Number
let num1 = 15;
• Bigint let num2 = 14.5;
alert( num1 + num2 ); //29.5
• Boolean
</script>
• Symbol
Como vemos en este ejemplo es posible realizar cálculos matemáticos
• Null usando operadores.
Junto con los números comunes, también podemos encontrar “valores
• Undefined numéricos especiales” como son Infinity, -Infinity y NaN.
• Undefined AC C E D E A E ST E E N L AC E PA R A M Á S
INFORMACIÓN
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
PRIMITIVOS
El tipo de datos Boolean solo tiene dos valores: true o false . Es
• String decir, define si un valor es correcto o verdadero, o no lo es.
• Number
• Bigint let seleccionado = true;
• Boolean
Aunque parezca una idea algo simple su utilidad es muy grande,
• Symbol
especialmente para hacer comprobaciones o comparaciones.
• Null
Más adelante veremos algunos ejemplos.
• Undefined
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
PRIMITIVOS
• String
• Number
• Bigint
El tipo symbol se utiliza para crear identificadores únicos para los
• Boolean
objetos.
• Symbol
• Null
• Undefined
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
PRIMITIVOS
• String
• Number
• Bigint En Javascript es sólo un valor especial que representa “nada”, “vacío”
• Boolean o “valor desconocido”.
• Symbol
• Null
• Undefined
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
PRIMITIVOS
• String
• Number
• Bigint
Simplemente significa que el valor no ha sido asignado.
• Boolean
• Symbol
• Null
• Undefined
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
VÍDEO
Usando tipo de datos. Algunos ejemplos
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
P R E G U N T A
Undefined
Null
Array
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
• Operadores aritméticos
• Operadores bit a bit
Operadores • Operadores de asignación
• Operadores de comparación
Existe un conjunto de operaciones en
JavaScript, es decir elementos que nos • Operadores lógicos
permiten actuar sobre los datos, realizad
• Operadores de cadenas de caracteres
operaciones matmáticas, etc. podemos dividir
los operadores disponibles según su carácter: • Operador condicional (ternario)
• Operador coma
• Operadores unarios
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
• Operadores aritméticos
• Operadores bit a bit Nombre Sintaxis Explicación
Resto % Devuelve el resto de una operación
• Operadores de asignación
Incremento ++ Incrementa en una unidad. Si se pone antes del operando (++i)
devuelve el resultado del incremento. Si se utiliza detrás (i++)
• Operadores de comparación muestra el valor antes del incremento.
• Operadores aritméticos
Los operadores bit a bit usan los operandos como un conjunto de 32 bits
• Operadores bit a bit (ceros y unos), mostrando posteriormente valores numéricos estándar de
JavaScript.
• Operadores de asignación
Nombre Sintaxis Explicación
• Operadores de comparación AND a&b Operacion AND, por ejemplo 010 (2) AND 011 (3) = 010
OR a|b Operacion OR, por ejemplo 010 (2) OR 011 (3) = 011
• Operadores lógicos
XOR a^b Operacion XOR, por ejemplo 010 (2) XOR 011 (3) = 110
• Operadores de cadenas de caracteres NOT ~a Invierte los bits, por ejemplo NOT 1000 = 0111
• Operador condicional (ternario) Desplazamiento a << n Desplaza un conjunto de bits un numero de veces añadiendo
izquierda ceros a la izquierda, 10 << 3 = 10000
Desplazamiento a >> n Desplaza un conjunto de bits un numero de veces a la derecha,
• Operador coma derecha descartando bits a la izquierda: 10 >> 1 = 11
• Operadores unarios
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
• Operadores aritméticos
• Operadores bit a bit
• Operadores de asignación Nombre Sintaxis
Igual que a == b
• Operadores de comparación
Distinto a a != b
• Operadores lógicos Menor qué a<b
Mayor qué a> b
• Operadores de cadenas de caracteres Menor o Igual que a <= b
Mayor o Igual que a >= b
• Operador condicional (ternario)
• Operador coma
• Operadores unarios
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
• Operadores aritméticos
• Operadores bit a bit
Nombre Sintaxis Explicación
• Operadores de asignación AND Lógico a && b Devuelve a si puede ser convertido a false de lo
contrario devuelve b. Por lo tanto, cuando se usa con
• Operadores de comparación valores booleanos, && devuelve true si ambos
operandos son true, en caso contrario devuelve false.
• Operadores lógicos OR Lógico a || b Devuelve a si puede ser convertido a true de lo
contrario devuelve b. Por lo tanto, cuando se usa con
• Operadores de cadenas de caracteres valores booleanos, || devuelve true si alguno es true y
false si ambos lo son.
• Operador condicional (ternario) NOT Lógico !a Devuelve false si su operando puede ser convertido a
true, en caso contrario, devuelve true.
• Operador coma
• Operadores unarios
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
• Operadores aritméticos
• Operadores bit a bit
• Operadores de asignación Podemos realizar operaciones de concatenación entre
• Operadores de comparación textos o cadena de caracteres con los operadores + y
+=.
• Operadores lógicos
"Buenas" + " tardes" // "Buenas tardes"
• Operadores de cadenas de caracteres let b = "Buenas";
• Operador condicional (ternario) b+=" noches"; // "Buenas noches"
• Operador coma
• Operadores unarios
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
• Operadores aritméticos
• Operadores bit a bit
• Operadores de asignación (Condición ? ifTrue : ifFalse)
• Operadores de comparación
El operador condicional devuelve uno de dos valores
• Operadores lógicos según el valor lógico de la condición.
• Operadores de cadenas de caracteres (edad >= 65) ? "Precio senior" : "Precio junior";
• Operador condicional (ternario) //Devolverá Precio Senior
• Operador coma
• Operadores unarios
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
• Operadores aritméticos
• Operadores bit a bit El operador de coma (,) evalúa cada uno de sus operandos y
devuelve el valor del último. Esto permite evalúan varias
• Operadores de asignación
expresiones, devolviendo el valor del último. Es usado
• Operadores de comparación habitualmente para proporcionar múltiples parámetros a un
bucle for .
• Operadores lógicos
• Operadores de cadenas de caracteres for (var i = 0; i < [Link]; i++, e++) {
• Operador condicional (ternario) // Código del bucle
}
• Operador coma
• Operadores unarios
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
• Operadores aritméticos
• Operadores bit a bit Una operación unaria es una operación con un solo
• Operadores de asignación operando.
• Operadores unarios
I N T R O D U C C I Ó N A J A V A S C R I P T La etiqueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diál
VÍDEO
Ejemplos de uso de diferentes operadores
I N T R O D U C C I Ó N A J A V A S C R I P T ueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diálogo
CUADROS DE
Muestra un mensaje en una ventana modal, en la que la persona usuario solo puede actuar pulsando
en “Aceptar”. Mientras tanto no podrá realizar ninguna otra acción en la página.
Muestra una ventana modal con una cuestión y dos botones: ACEPTAR y CANCELAR. El resultado es
true si se pulsa ACEPTAR y false en caso contrario.
Muestra una ventana modal con una frase y una campo para insertar texto. Puede contener dos
parámetros, la pregunta o frase inicial y un valor por defecto que es opcional.
VÍDEO
Ejemplos de uso de cuadros de diálogo
I N T R O D U C C I Ó N A J A V A S C R I P T ueta (script) Contenidos alternativos Variables Tipos de datos Operadores Cuadros de diálogo
P R E G U N T A
Ninguno
Confirm y Prompt
To d o s
1.3 Fundamentos de
programación
C O M E N Z A R
FUNDAMENTOS DE PROGRAMACIÓN Estructuras de decisión Expresiones lógicas Estructura de repetición Definir funciones
Estructuras de
decisión
En los ejemplos que hemos visto hasta el momento en el
curso, las instrucciones están escritas de manera
secuencial, es decir, una debajo de la otra, mostrándose
una sola vez y en el orden en el que aparecen.
La sentencia if() evalúa la condición que haya entre los paréntesis. Si el resultado es
verdadero (true) ejecuta un bloque de código.
Ejemplo
Podemos incluir
un bloque else (si no) para el caso en que la condición sea falsa (false)
Example
VÍDEO
Uso de la condición if… Else
FUNDAMENTOS DE PROGRAMACIÓN Estructuras de decisión Expresiones lógicas Estructura de repetición Definir funciones
Expresiones
lógicas
Las expresiones lógicas son aquellas que evalúan
los datos a verdadero (true) o falso (false). Usarlas
de manera adecuada es fundamental para
trabajar con cualquier lenguaje de programación.
Las expresiones lógicas pueden utilizar tanto
operadores lógicos como relacionales o ambos.
let a = 9;
let b = 2;
alert ((a < 10 && b > 1) + "-" + (a < 10 && b < 1));
P R E G U N T A
Las estructuras de
repetición o bucles
Junto con las expresiones lógicas, son capaces de cambiar le flujo de
ejecución. Como su propio nombre indica, sirven para repetir un A continuación describiremos
conjunto de instrucciones. los siguientes bucles:
Existen otros bucles, como for in o do while. Estos casos los estudiaremos más adelante, una vez hayamos avanzado en
el curso y así podamos comprender mejor su uso.
FUNDAMENTOS DE PROGRAMACIÓN Estructuras de decisión Expresiones lógicas Estructura de repetición Definir funciones
Sentencia switch
Switch sirve para crear una condición “if” con múltiples posibilidades.
S i n t a x i s
Su funcionamiento es el siguiente
Se hace la comparación de la expresión en
switch(expresión) {
cada caso. Si hay una coincidencia, se
case a:
// Bloque de código ejecuta el bloque de código. Si no hay
break; ninguna coincidencia, se ejecuta el bloque
case b: de código predeterminado (default) que
// Bloque de código es opcional.
break;
default:
// Bloque de código
}
FUNDAMENTOS DE PROGRAMACIÓN Estructuras de decisión Expresiones lógicas Estructura de repetición Definir funciones
Sentencia for
Su funcionamiento es algo más complejo, pero es mucho más utilizado porque nos va
a permitir realizar muchas más tareas.
Bucle while
While, mientras en inglés, es la manera más sencilla de repetir acciones.
while(condición) {
// Bloque de código
} Ejemplo
let i = 0;
while (i < 5) {
alert( i );
i++;
}
FUNDAMENTOS DE PROGRAMACIÓN Estructuras de decisión Expresiones lógicas Estructura de repetición Definir funciones
VÍDEO
Comentando los ejemplos de estructura de repetición
FUNDAMENTOS DE PROGRAMACIÓN Estructuras de decisión Expresiones lógicas Estructura de repetición Definir funciones
P R E G U N T A
For
While
Switch
FUNDAMENTOS DE PROGRAMACIÓN Expresiones lógicas Estructura de repetición Definir funciones Llamar funciones Ámb
Definir
FUNCIONES [Link]
function nombreFuncion(parametro1,
parametro2,…) {
// Acciones o cuerpo de la función.
}
Es decir, debemos comenzar con la palabra function, seguida del nombre que le queramos
poner y entre paréntesis una lista de parámetros.
FUNDAMENTOS DE PROGRAMACIÓN Expresiones lógicas Estructura de repetición Definir funciones Llamar funciones Ámb
function unMensaje() {
alert("Estamos aprendiendo a declarar una función.");
}
Llamar
FUNCIONES
Llamar a una función es tan fácil como escribir el nombre de dicha función incluido los paréntesis,
ahora sin incluir la palabra function.
function unMensaje() {
alert("Estamos aprendiendo a declarar y llamar a una función.");
}
unMensaje();
FUNDAMENTOS DE PROGRAMACIÓN Estructura de repetición Definir funciones Llamar funciones Ámbito de las variables
Llamar
funciones
O pasando los datos a los parámetros parámetros, datos que habitualmente se les llama
argumentos.
Los argumentos deben coincidir en número con los parámetros de la función, si no es así algún caso el
valor se vuelve undefined.
function llamada(f){
f();
}
llamada(function(){
alert("Estamos llamando a una función anónima.");
});
FUNDAMENTOS DE PROGRAMACIÓN Estructura de repetición Definir funciones Llamar funciones Ámbito de las variables
function llamada(f){
f();
}
let f = function(){
alert("Hemos incluido una función como valor de una variable.");
}
llamada (f);
FUNDAMENTOS DE PROGRAMACIÓN Estructura de repetición Definir funciones Llamar funciones Ámbito de las variables
VÍDEO
Definiendo y llamando funciones
FUNDAMENTOS DE PROGRAMACIÓN Estructura de repetición Definir funciones Llamar funciones Ámbito de las variables
function suma(a, b) {
return a + b;
}
alert(suma(5, 8) );
FUNDAMENTOS DE PROGRAMACIÓN Estructura de repetición Definir funciones Llamar funciones Ámbito de las variables
La directiva return no necesariamente debe estar al final del código de la función, puede estar en
cualquier lugar de la función.
Incluso puede haber más de un return en una misma función. La función siempre se detendrá cuando
alcanza return.
function compruebaDia(edad) {
if (edad >= 18) {
return true;
} else {
return confirm('¿Debes entrar acompañado de un adulto?');
}
}
let edad = prompt('¿Cuantos años tienes?');
if ( compruebaDia(edad) ) {
alert( 'Puedes pasar' );
} else {
alert( 'No puedes pasar' );
}
Veamos a continuación su explicación
FUNDAMENTOS DE PROGRAMACIÓN Estructura de repetición Definir funciones Llamar funciones Ámbito de las variables
VÍDEO
Explicando el código anterior: Return
FUNDAMENTOS DE PROGRAMACIÓN Estructura de repetición Definir funciones Llamar funciones Ámbito de las variables
Scope [Link]
Variable local
Una variable local es aquella que se encuentra dentro de una función.
Podemos acceder desde la función…
function muestraMensaje() {
let mensaje = "Trabajando con una variable local";
alert( mensaje ); La razón es que la variable “mensaje” se
} ha definido dentro de la función
muestraMensaje(); muestraMensaje() y por tanto, es una
variable local que solamente está definida
dentro de la función.
…pero nunca desde fuera:
Cualquier instrucción de la función puede
acceder a la variable si está dentro y hacer
function muestraMensaje() {
que finalmente la función cumpla su
let mensaje = "Trabajando con una variable local";
} cometido, como ocurre en el primer
alert( mensaje ); ejemplo de esta pantalla.
FUNDAMENTOS DE PROGRAMACIÓN Estructura de repetición Definir funciones Llamar funciones Ámbito de las variables
VÍDEO
Explicando el código anterior: Una variable local
FUNDAMENTOS DE PROGRAMACIÓN Estructura de repetición Definir funciones Llamar funciones Ámbito de las variables
Variable global
Están definidas en cualquier lugar del programa pero fuera de la función.
VÍDEO
Explicando el código anterior: Una variable global
FUNDAMENTOS DE PROGRAMACIÓN Estructura de repetición Definir funciones Llamar funciones Ámbito de las variables
P R E G U N T A
Verdadero o falso
Entre dos variables declaradas con el mismo nombre, una dentro de una
función y la otra fuera de la función, prepondera siempre la que está
fuera de la función o global.
Ve rd a d e ro
Falso
FUNDAMENTOS DE PROGRAMACIÓN Estructura de repetición Definir funciones Llamar funciones Ámbito de las variables
Es recomendable
Definir como variables locales todas las variables que sean de uso exclusivo
para realizar las tareas encargadas a cada función. Las variables globales se
utilizan para compartir variables entre funciones de forma sencilla.
De cualquier manera es mejor reducir el uso de variables globales. En
programación moderna prácticamente no se usan variables globales. La
mayoría de las variables están dentro de las funciones. Aunque a veces puede
justificarse almacenar algunos datos que sea útil para todo un sitio.
hemos
terminado
¡EXCELENTE TRABAJO!