SlideShare una empresa de Scribd logo
1 de 44
Descargar para leer sin conexión
JavaScript:
Booleanos y sentencia if/else
1
© Juan Quemada, DIT, UPM
Booleanos: true y false
2
© Juan Quemada, DIT, UPM
El tipo booleano solo posee
los valores: true y false.
Se combinan con operadores lógicos:
negación: ! !true => false
!false => true
op. y: && true && true => true
true && false => false
false && true => false
false && false => false
op. o: || true || true => true
true || false => true
false || true => true
false || false => false
Un booleano se obtiene como resultado de:
- comparación de orden de números
menor: < menor_o_igual: <=
mayor: > mayor_o_igual: >=
- comparación de identidad de valores
identidad: === no_identidad: !==
Booleanos: true y false
3
© Juan Quemada, DIT, UPM
El tipo booleano solo posee
los valores: true y false.
Un booleano se obtiene como resultado de:
- comparación de orden de números
menor: < menor_o_igual: <=
mayor: > mayor_o_igual: >=
- comparación de identidad de valores
identidad: === no_identidad: !==
Se combinan con operadores lógicos:
negación: ! !true => false
!false => true
op. y: && true && true => true
true && false => false
false && true => false
false && false => false
op. o: || true || true => true
true || false => true
false || true => true
false || false => false
Sentencia
if/else
4
© Juan Quemada, DIT, UPM
Sentencia
if/else
5
© Juan Quemada, DIT, UPM
La sentencia if/else
comienza con la
palabra reservada if
El primer bloque
de sentencias va
después de la
condición,
delimitado entre
llaves: {}
El segundo bloque de sentencias va precedido por la
palabra reservada else y delimitado entre llaves: {}
La condición va entre paréntesis.
Según sea true o false, se ejecuta
el primer o el segundo bloque.
La condición se evalúa a true o a
false en función del estado del
progr. (valores de las variables).
Crea la variable
numero y le asigna
un valor aleatorio
entre 1 y 1.
6
Sentencia
if/else
© Juan Quemada, DIT, UPM
7
Sentencia
if/else
La sentencia if tiene ahora solo
la primera parte. Esta cambia el
contenido asignado a la variable
por str = ‘ MENOR que 1,5’
Este programa es equivalente al
anterior, pero con diferente
estructura. No utiliza la parte else
(opcional), pero añade la variable
str = ‘ MAYOR que 1,5’
El mensaje enviado a consola se
genera concatenando numero y
str.
© Juan Quemada, DIT, UPM
Clase Date
n new Date() crea objetos pertenecientes a esta clase
w new Date() devuelve un objeto con fecha y hora del reloj en el momento de crear el objeto
Sobre los objetos de esta clase se pueden invocar los métodos definidos para ella
n getDay(), getHours(), getMinutes(), getFullYear(), …..
w Invocar un método que no está definido en un objeto da un error_de_ejecución
Más información sobre sus métodos y propiedades en:
n https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Date
La clase Date:
fechas y horas
8© Juan Quemada, DIT, UPM
new Date() crea un objeto
con la fecha y la hora en el
momento de crearlo.
Sus métodos toString(),
getDay(), .. permiten
obtener fecha, día, ..
if/else-if encadenado
9
© Juan Quemada, DIT, UPM
Las sentencias if/else pueden
encadenarse así, para comprobar
múltiples condiciones en cascada
(de las cuales solo se ejecutará
una), tal y como se hace para
seleccionar el saludo.
En esta variante añadimos al
ejemplo fecha y hora un título
de nivel 1 (h1) vacío, en el
que se inserta un saludo
(Buenos días/tardes/noches)
en función de la hora del día.
Final del tema
10
© Juan Quemada, DIT, UPM
Ejemplo con prompt()
11
© Juan Quemada, DIT, UPM
En este ejemplo el número lo
teclea el usuario en el cajetín
de la ventana que despliega la
función prompt(<msj>).
prompt() es una función de
JavaScript en desuso, pero
muy sencilla de utilizar.
isNaN(numero) determina
(devuelve true) si numero es un
literal de número incorrecto,
indicandolo con un mensaje.
Sentencia
if/else-if
12
© Juan Quemada, DIT, UPM
Las sentencias if/else pueden
encadenarse así, para comprobar
múltiples condiciones en cascada
(de las cuales solo se ejecutará
una), tal y como se hace en el
ejemplo de la función sonido.
Interacción sencilla basada en "pop-ups”
alert(msj):
n presenta un mensaje al usuario
w Retorna al pulsar OK
confirm(msj):
n Presenta mensaje y pide confirmación/rechazo
w Retorna al pulsar, devuelve true(Ok)/false(Cancel)
prompt(msj):
n Presenta mensaje y pide un dato de entrada
w Al pulsar OK, retorna y devuelve string introducido
n Si se pulsa Cancel devuelve "null”
Funciones alert(), confirm() y prompt()
13
© Juan Quemada, DIT, UPM
JavaScript: el tipo string
14
© Juan Quemada, DIT, UPM
El tipo string
Los literales de string se utilizan para representar textos escritos
n Puede representar lenguas diferentes porque utiliza el código UNICODE
w Lenguas y símbolos soportados en UNICODE: http://www.unicode.org/charts/
Literal de string: textos delimitados por comillas o apóstrofes
n "hola, que tal", 'hola, que tal', 'Γεια σου, ίσως' o ' '
w en la línea anterior se representa "hola, que tal" en castellano, griego y chino
n String vacío: "" o ''
n "texto 'entrecomillado' "
w comillas y apóstrofes se pueden anidar: 'entrecomillado' forma parte del texto
Operador de concatenación de strings: +
n "Hola" + " " + "Pepe" => "Hola Pepe"
15
© Juan Quemada, DIT, UPM
Alfabeto, código y codificación
Juego de caracteres o alfabeto
n Conjunto de símbolos normalizados para representar una lengua
Código de caracteres
n Conjunto de puntos de código dados a los símbolos de un alfabeto, p.e.
w ASCII: alfabeto inglés codificado en 7 bits (128 caracteres y 95 imprimibles)
w ISO-8859-1, 2, .., 15: Alfabetos de Europa occidental codificados en 8 bits
w UNICODE: código internacionalizado que contiene casi todos los alfabetos
w Posee 17 planos codificados en 2 bytes cada uno (1er Plano: BMP)
Codificación
n representación binaria de un código de caracteres
w ASCII e ISO Latin-x: el valor del punto del código coincide con la representación binaria
w UNICODE UTF-8: Codificación binaria en 1, 2, 3 o 4 bytes eficiente con lenguas latinas
w UNICODE UTF-16: Codificación del plano BMP en 2 bytes y de otros planos en 4 bytes
w UNICODE UTF-32: Codificación de todos los planos en 4 bytes
16
© Juan Quemada, DIT, UPM
JavaScript utiliza el plano básico multilingüe (BMP) de UNICODE
n Caracteres codificados en 2 octetos (16 bits): 65536 combinaciones
El texto se introduce en el ordenador tecleando en el teclado
n Los teclados suelen incluir solo las teclas del alfabeto(s) de un país
w Tecleando solo es posible introducir un conjunto muy pequeño de símbolos
n Caracteres no incluidos en el teclado pueden añadirse por "corta y pega”
w por ejemplo, de strings traducidos con Google translate: https://translate.google.es
n O también pueden añadirse con los códigos escapados
w Permiten introducir caracteres no existentes en el teclado con códigos especiales
Pantalla: es gráfica y puede mostrar cualquier carácter
17
© Juan Quemada, DIT, UPM
Entrada y Salida de Caracteres
Ejemplos de
teclados
Definen caracteres UNICODE
n Comienzan con barra inversa: …
w La definición solo incluye caracteres ASCII
w Se incluyen en strings como otros caracteres
Hay tres tipos
n Caracteres de control ASCII
n Caracteres UNICODE
n Caracteres ISO-8859-1
Caracteres UNICODE o ISO-8859-1 se definen con punto de código, así:
n UNICODE: uHHHH donde HHHH es el punto del código (4 dígitos hex), p.e. u005C
n ISO-8859-1: xHH donde HH es el punto del código (2 dígitos hex), p.e. x5C
Algunos ejemplos
n Las "Comillas dentro de "comillas"" deben ir escapadas dentro del string.
n En "Dos n lineas” el retorno de línea (n) separa las dos líneas.
n En "Dos u000A lineas” las líneas se separan con el código UNICODE u000A equivalente a n.
18
© Juan Quemada, DIT, UPM
Códigos escapados
CARACTERES DE CONTROL ASCII
NUL (nulo): 0, x00, u0000
Backspace: b, x08, u0008
Horizontal tab: t, x09, u0009
Newline: n, x0A, u000A
Vertical tab: t, x0B, u000B
Form feed: f, x0C, u000C
Carriage return: r, x0D, u000D
Comillas (dobles): ", x22, u0022
Apóstrofe : ', x27, u0027
Backslash: , x5C, u005C
Ejemplos de codificación
19
© Juan Quemada, DIT, UPM
Codificación Texto Codificación hexadecimal
ASCII: codificación que soporta
solo la lengua inglesa.
hola!
cañón
68 6f 6c 61 21 0a
63 61 xx xx 6e
ISO 8859 1 (Latin 1): codificación
utilizada en páginas HTML no
internacionalizadas.
hola!
cañón
68 6f 6c 61 21 0a
63 61 f1 f3 6e
UTF-8: codificación de UNICODE
utilizada hoy en páginas HTML.
hola!
cañón
68 6f 6c 61 21 0a
63 61 c3 b1 c3 b3 6e
UTF-16BE: codificación del plano
BMP de UNICODE utilizada en
programas JavaScript
hola!
cañón
00 68 00 6f 00 6c 00 61 00 21 00 0a
00 63 00 61 00 f1 00 f3 00 6e
hola!
cañon
se codifica en formato xHH
como: x68x6fx6cx61x21
x0ax63x61xf1xf3x6e
El código ASCII solo permite codificar
símbolos del alfabeto inglés, por lo que los
símbolos ñ y ó no se pueden representar.
JavaScript soporta los símbolos del plano UNICODE-BMP,
que corresponden a la codificación UTF-16BE (Big Endian).
hola!
cañon
se codifica en formato uHHHH como: u0068u006fu006c
u0061u0021u000au0063u0061u00f1u00f3u006e
UTF-8 es una codificación de
longitud variable, que permite
representar todos los planos de
UNICODE. Es el más eficiente
para representar lenguas latinas
y se utiliza mucho en páginas
Web internacionalizadas.
Caracteres ASCII (Basic Latin) en UNICODE BMP
© UNICODE: http://www.unicode.org/charts/PDF/U0000.pdf
20
© Juan Quemada, DIT, UPM
Extensión ISO Latin1 en UNICODE BMP
© UNICODE: http://www.unicode.org/charts/PDF/U0080.pdf
21
© Juan Quemada, DIT, UPM
¥ será "xA5" o "u00A5"
Radicales Kangxi de UNICODE BMP
© UNICODE: http://www.unicode.org/charts/PDF/U2F00.pdf
22
© Juan Quemada, DIT, UPM
será "u2FC0"
Métodos de String
Algunos métodos y elementos útiles de String
n Más info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String
Un string es un array de caracteres
n un índice entre o y número_de_caracteres-1 referencia cada carácter
Acceso como array: 'ciudad'[2] => 'u'
Propiedad: 'ciudad'.length => 6
n La propiedad length contiene el número de caracteres del string
Método: 'ciudad'.substring(2,5) => 'uda'
n devuelve el substring comprendido entre ambos índices
Método: 'ciudad'.charCodeAt(2) => 117
n devuelve el número (decimal) con código UNICODE del tercer carácter
Método: String.fromCharCode(117) => 'u'
n devuelve el string con el carácter correspondiente al código numérico (decimal)
23
© Juan Quemada, DIT, UPM
ciudad
[0] [1] ........ [5]
Ejemplos de strings
24
© Juan Quemada, DIT, UPM
La Ñ existe en el código ISO-8859-1 y su código numérico en hexadecimal es
d1, por lo que se puede incluir en un string tecleando (1ª) o como xd1 (2ª).
La á existe también en el código ISO-8859-1 y la introducimos tecleando el
acento y luego la a (1ª) o con el código numérico en hexadecimal xe1 (2ª).
La barra inclinada (backslash) debe escaparse () para que se visualice.
EL Euro no existe en ISO-8859-1 porque este código se creo antes de existir el Euro.
Unicode se actualizó al aparecer el Euro añadiendo el símbolo € con el código u20ac.
EL Yen Japonés si existe en ISO-8859-1: código hexadecimal xa5.
Un string es un array (matriz) de caracteres, numerados de 1 a n-1 (último-1).
"Ciudad"[1] indexa el segundo carácter del string, el primero será "Ciudad"[0].
Al invocar el método charCodeAt(1) con el operador "." sobre el string "Ciudad"
nos devuelve el valor numérico decimal del punto del código del 2º carácter ("i").
String.fromCharCode(105) realiza la operación inversa, devuelve un string
con el carácter cuyo valor (punto del código) se pasa como parámetro.
"Ciudad".substring(3,5) devuelve la subcadena entre 3 y 5: "da"
"Ciudad".substring(3,5).length devuelve la longitud
de la subcadena devuelta (“da”), que tiene 2 caracteres.
JavaScript: el tipo number
25
© Juan Quemada, DIT, UPM
Tipo number
Los números del tipo number
n se representan con literales de números
JavaScript 3 y 5 (ES3 y ES5)
n tiene 3 formatos de literales
w Decimales, hexadecimales y coma flotante
Decimales
n Enteros: 1, 32, ….
n Enteros con decimales: 1.2, 32.1, ….
Hexadecimales
n Solo enteros: 0xFF, 0X10, …..
Coma flotante (decimal)
n Coma flotante: 3.2e1 (3,2x10
1
)
w sintaxis: <mantisa>e<exponente>
26
© Juan Quemada, DIT, UPM
10 + 4 => 14 // sumar
10 - 4 => 6 // restar
10 * 4 => 40 // multiplicar
10 / 4 => 2.5 // dividir
10 % 4 => 2 // operación resto
0xA + 4 => 14 // A es 10 en base 16
0x10 + 4 => 20 // 10 es 16 en base 16
3e2 + 1 => 301 // 3x102
3e-2 + 1 => 1,03 // 3x10-2
El tipo number posee 2 valores especiales
n NaN
n Infinity
NaN (Not a Number)
n representa un valor no numérico
w números complejos
w strings no convertibles a números
Infinity representa
n El infinito matemático
n Desbordamiento
El tipo number utiliza el formato
n IEEE 754 coma flotante doble precisión (64 bits)
w Reales máximo y mínimo: ~1,797x10^308 y 5x10^-324
w Entero máximo: 9007199254740992
n Cualquier literal se convierte a este formato
27
+’xx' => NaN // no representable
+10/0 => Infinity // Infinito matemático
-10/0 => -Infinity // Infinito matemático
// Números demasiado grandes
5e500 => Infinity //desborda
-5e500 => -Infinity //desborda
// Número demasiado pequeño
5e-500 => 0 // redondeo
// los decimales dan error de redondeo
0.1 + 1.2 => 1,3000000000004
Infinity y NaN
© Juan Quemada, DIT, UPM
El Modulo Math contiene
n constantes y funciones matemáticas
Constantes
n Números: E, PI, SQRT2, …
Funciones
n sin(x), cos(x), tan(x), asin(x), ….
n log(x), exp(x), pow(x, y), sqrt(x), ….
n abs(x), ceil(x), floor(x), round(x), ….
n min(x,y,z,..), max (x,y,z,..), …
n random()
Mas info:
n https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math
28
Modulo Math
Math.PI => 3.141592653589793
Math.E => 2.718281828459045
// numero aleatorio entre 0 y 1
Math.random() => 0.7890234
Math.pow(3,2) => 9 // 3 al cuadrado
Math.sqrt(9) => 3 // raíz cuadrada de 3
Math.min(2,1,9,3) => 1 // número mínimo
Math.max(2,1,9,3) => 9 // número máximo
Math.floor(3.2) => 3
Math.ceil(3.2) => 4
Math.round(3.2) => 3
Math.sin(1) => 0.8414709848078965
Math.asin(0.8414709848078965) => 1
© Juan Quemada, DIT, UPM
Algunos métodos útiles de Number son
n toFixed(n) devuelve string equiv. a número
w redondeando a n decimales
n toPrecision(n) devuelve string equiv. a número
w redondeando número a n dígitos
n toExponential(n) devuelve string eq. a número
w redondeando mantisa a n decimales
n toString([base]) convierte un número a
w string con el número en la base indicada
w [base] es opcional, por defecto base 10
Los métodos se invocan con el operador punto: "."
n OJO! El número debe estar entre paréntesis para invocar el método, sino da error
En este enlace se pueden ver otros métodos de Number:
n https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number
29
Métodos de Number
(1).toFixed(2) => "1.00"
(1).toPrecision(2) => "1.0"
1.toFixed(2) => Error
Math.PI.toFixed(4) => "3.1416"
Math.E.toFixed(2) => "2.72"
(1).toExponential(2) => "1.00e+0"
(31).toString(2) => "11111"
(31).toString(10) => "31"
(31).toString(16) => "1f"
(10.75).toString(2) => "1010.11”
(10.75).toString(16) => "a.c”
© Juan Quemada, DIT, UPM
parseInt(string, [base]): función predefinida de JS que convierte string a number
n string se interpreta como un entero en la base indicada (por defecto base 10)
parseFloat(string): función predefinida de JS que convierte string a number
n string se interpreta coma un número en coma flotante
ParseInt(..) o parseFloat(..): realizan una conversión similar a la conversión automática
n OJO! Convierten a número si un prefijo no vacío del string representa un número
30
parseInt(..) y parseFloat(..)
parseInt('60') => 60
parseInt(’60.45') => 60
parseInt('0060') => 60
parseInt('xx') => NaN
parseFloat("1e2") => 100
parseFloat("1.3e2") => 130
parseFloat("xx1e2") => NaN
parseInt("1010") => 1010
parseInt("1010",2) => 10
parseInt("12",8) => 10
parseInt("10",10) => 10
parseInt("a",16) => 10
parseInt("01xx") => 1
parseInt("01+4") => 1
© Juan Quemada, DIT, UPM
JavaScript: Booleanos
31
© Juan Quemada, DIT, UPM
El tipo boolean (booleano) solo tiene 2 valores
n true: verdadero
n false: falso
Los valores booleanos se utilizan para tomar decisiones
n En sentencias condicionales: If/else, bucles, etc.
La regla de conversión de otros tipos a booleano es
n 0, -0, NaN, null, undefined, "", '' son equivalentes a false
n resto de valores son equivalentes a true
La negación convierte un valor en el valor booleano equivalente negado
n La doble negación convierte un valor en su equivalente booleano: !!<v>
32
!4 => false
!"4" => false
!null => true
!0 => true
!!"" => false
!!4 => true
Tipo booleano
© Juan Quemada, DIT, UPM
Identidad o igualdad estricta: ===
n determina si 2 valores son exactamente los mismos
w Es igualdad semántica solo en: number, boolean, strings y undefined
w OJO! En objetos es identidad de referencias (punteros)
n La identidad determina igualdad de tipo y de valor
Desigualdad estricta: !==
n negación de la igualdad estricta
Igualdad y desigualdad débil: == y !=
n OJO! No debe utilizarse
w Realiza conversiones impredecibles
Mas info:
n https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Sameness
33
Operadores de identidad e igualdad
Tipos básicos: identidad
0 === 0 => true
0 === 0.0 => true
0 === 0.00 => true
0 === 1 => false
0 === false => false
'2' === "2" => true
'2' === "02" => false
'' === "" => true
'' === " " => false
© Juan Quemada, DIT, UPM
JavaScript tiene 4 operadores de comparación
n Menor: <
n Menor o igual: <=
n Mayor: >
n Mayor o igual: >=
Utilizar comparaciones solo con números (number)
n donde es una relación de orden bien definida
No se recomienda utilizar con otros tipos: string, boolean, object, ..
n Las relación de orden en estos tipos existe, pero es muy poco intuitiva
w https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators
34
1.2 < 1.3 => true
1 < 1 => false
1 <= 1 => true
1 > 1 => false
1 >= 1 => true
false < true => true
"a" < "b" => true
"a" < "aa" => true
Operadores de comparación
© Juan Quemada, DIT, UPM
Operadores y (&&) y o (||)
Operador lógico y (and): <v1> && <v2>
n devuelve <v1> o <v2> sin modificarlos
w <v1> && <v2>
w devuelve <v1> -> si <v1> es equivalente a false
w devuelve <v2> -> en caso contrario
Operador lógico o (or): <v1> || <v2>
n devuelve <v1> o <v2> sin modificarlos
w <v1> || <v2>
w devuelve <v1> -> si <v1> es equivalente a true
w devuelve <v2> -> en caso contrario
35
© Juan Quemada, DIT, UPM
true && true => true
false && true => false
true && false => false
false && false => false
0 && true => 0
1 && "5" => "5"
true || true => true
false || true => true
true || false => true
false || false => false
undefined || 1 => 1
13 || 1 => 13
El operador de asignación condicional
n devuelve un valor en función de una condición lógica (siempre entre paréntesis)
w Es una versión funcional del operador if/else
Sintaxis: (condición) ? <v1> : <v2>
n devuelve <v1> -> si condición es equivalente a true
n devuelve <v2> -> en caso contrario
Esta sentencia permite definir parámetros por defecto en funciones con la asignación
n param = (x!==undefined) ? x : <parámetro_por_defecto>;
w También se define a veces como "x || <parámetro_por_defecto>”, pero aplicaría también si x es "", 1, null, ..
36
function comer (persona, comida) {
persona = (persona !== undefined) ? persona : 'Alguién';
comida = (comida !== undefined) ? comida : 'algo';
return (persona + " come " + comida);
};
comer('José'); => 'José come algo'
comer(); => 'Alguien come algo'
(7) ? 1 : 7 => 1
("") ? 1 : 7 => 7
(true) ? 1 : 7 => 1
(false)? 1 : 7 => 7
Operador de asignación condicional
© Juan Quemada, DIT, UPM
JavaScript:
DOM, Eventos e interacción con el usuario
37
© Juan Quemada, DIT, UPM
HTML permite definir eventos de interacción con el usuario
n Los eventos se definen con atributos con nombres especiales de elementos HTML
w onclick (hacer clic), ondbclick (hacer doble clic), onload (página cargada), …
n http://librosweb.es/libro/javascript/capitulo_6/modelo_basico_de_eventos_2.html
El valor asignado al atributo es código JavaScript (string) ejecutado al ocurrir el evento
n this referencia el objeto DOM del elemento HTML asociado al evento
w onclick="this.src ='scare.png'" asigna al atributo src, de la imagen, el URL al icono scare.png
n this.src se refiere a la propiedad asociada al atributo src del objeto DOM de la imagen
w onclick="this.src ='wait.png'" asigna al atributo src, de la imagen, el URL al icono wait.png
El ejemplo asocia 2 eventos a la imagen (elemento <img .... >)
n onclick="this.src ='scare.png'" muestra el icono scare.png al hacer clic en la imagen
n ondbclick="this.src ='wait.png'" muestra el icono clic.png al hacer doble clic en la imagen
Eventos
en HTML
38
© Juan Quemada, DIT, UPM
Ejemplo de calculadora muy sencilla
n Con los elementos básicos de interacción
w cajetines para teclear texto
n <input type="text" ….. >
w botones para interactuar con el programa
n <button>..nombre..</button>
Comportamiento de la calculadora
n Al pulsar el botón se calcula
w el cuadrado del número tecleado en el cajetín
n Al seleccionar el cajetín
w se borra el contenido existente
La calculadora tiene 3 elementos HTML
n Un texto indicativo
n El cajetín donde teclear
n El botón con el que calcular el cuadrado
39
Calculadora
© Juan Quemada, DIT, UPM
Calculadora: DOMLa interacción con el usuario se realiza con:
n Botón donde clicar: <button onclick="cuadrado()"> x<sup>2 </sup></button>
w Este elemento muestra el texto HTML "x<sup>2</sup>" donde la marca <sup> define un exponente o superíndice
n Cajetín de entrada de texto: <input type="text" id="n1" onclick="vaciar()">
w El objeto DOM obtenido con var num = document.getElementById("n1") permite interacción con el cajetín
Las propiedades del objeto num dan acceso a los atributos HTML y a otros, por ejemplo
n num.type contiene "text"
n num.id contiene "n1"
n num.value contiene "9"
w es el contenido tecleado en el cajetín
n num.innerHTML contiene: ""
w <input> no tiene HTML interno
n num.outerHTML contiene:
w "<input type="text" id="n1" onclick="vaciar()">"
n Es el HTML completo del elemento
Modificar la página visualizada, por ej.
n Asignar num.value = 5;
w Mostrará 5 en el cajetín
n Asignar num.outerHTML = <p>Hola</p>
w Mostrará un párrafo con“Hola" en vez del cajetín
40
© Juan Quemada, DIT, UPM
Los objetos DOM tienen eventos asociados atendidos por funciones, por ej.
n El atributo onClick="vaciar()" de <input type="text" id="n1" onClick="vaciar()">
w Asocia al evento clicar en el cajetín la función vaciar() que vacía el cajetín al ocurrir este
n El atributo onClick="cuadrado()" de <button onClick="cuadrado()"> ….
w Asocia al evento clicar en <button..> la función cuadrado() que muestra en el cajetín el cuadrado del número
contenido en este antes de clicar
Existen muchos más eventos de interacción con el usuario
n Se puede encontrar más información sobre los más básicos en:
w http://librosweb.es/libro/javascript/capitulo_6/modelo_basico_de_eventos_2.html
Atención
a eventos
41
© Juan Quemada, DIT, UPM
Calculadora:
añadir
Botón 1/x
42
En este ejemplo añadimos
n Un botón más a la calculadora
w El dot calcula el inverso (1/x) del cajetín
Añadir un nuevo botón es sencillo
n Se añade un nuevo botón HTML
w con el texto: 1/x
w con atributo : onclick=“inverso()"
n asocia inverso() a clic en él
n Se añade la función: inverso()
w Calcula el inverso del número del cajetín
n Se añade una marca de párrafo en HTML
w Para separar el cajetín de los botones
© Juan Quemada, DIT, UPM
Calculadora
extendida
43
© Juan Quemada, DIT, UPM
Calculadora extendida
n Suma o resta 2 números, así:
w Se teclea el primer número
w Se pulsa + o -
w Se teclea el segundo número
w se pulsa =
Variables num, acc y op
n Las variables num, acc y op se definen al
principio del script para su uso en las
funciones
w Las variables globales son visibles en las
funciones
Evento onLoad y función inic()
n El evento onLoad de body indica que se
ha construido ya el árbol DOM
w Este evento invoca la función inic() que carga
en la variable num el objeto DOM de acceso
al cajetín, que utilizan el resto de las funciones
Variables acc y op
n Las variables acc y op guardan el número
que está en el cajetín y la operación
pulsada (+ o -), cuando se pulsa el botón +
(invoca función mas()) o el - (invoca
función menos()).
Botón =
n El botón = invoca la función calcular(),
que suma o resta el número que está en el
cajetín con el número guardado en acc,
dependiendo de la operación (+ o -) que se
ha guardado en la variable op
Final del tema
44
© Juan Quemada, DIT, UPM

Más contenido relacionado

La actualidad más candente

Bolsa de valores
Bolsa de valoresBolsa de valores
Bolsa de valoresRoses Tl
 
Libros auxiliares registrando mas allá
Libros auxiliares registrando mas allá Libros auxiliares registrando mas allá
Libros auxiliares registrando mas allá Mariam Gomez
 
Catalogo de cuentas contabilidad
Catalogo de cuentas contabilidad Catalogo de cuentas contabilidad
Catalogo de cuentas contabilidad Joan de la Rosa
 
Introducción a Javascript: Formularios
Introducción a Javascript: FormulariosIntroducción a Javascript: Formularios
Introducción a Javascript: FormulariosHéctor Estigarribia
 
Teoria de-carteras1
Teoria de-carteras1Teoria de-carteras1
Teoria de-carteras1Erika Quiroz
 
Elementos de la base de datos
Elementos de la base de datosElementos de la base de datos
Elementos de la base de datosManuel Hernandez
 
UNIDAD V actividad 2: metodos de depreciacion
UNIDAD V actividad 2: metodos de depreciacion UNIDAD V actividad 2: metodos de depreciacion
UNIDAD V actividad 2: metodos de depreciacion anellopez19
 
Principales mercados financieros internacionales....
Principales mercados financieros internacionales....Principales mercados financieros internacionales....
Principales mercados financieros internacionales....Mary Vallejo
 
Modelos de objetos semanticos
Modelos de objetos semanticosModelos de objetos semanticos
Modelos de objetos semanticosMarelvis_inf
 
Principales codigos visual basic
Principales codigos visual basicPrincipales codigos visual basic
Principales codigos visual basicMarlon Gomez Solis
 
Importancia de la Contabilidad
Importancia de la ContabilidadImportancia de la Contabilidad
Importancia de la ContabilidadRodrigo Molina
 

La actualidad más candente (16)

Bolsa de valores
Bolsa de valoresBolsa de valores
Bolsa de valores
 
Libros auxiliares registrando mas allá
Libros auxiliares registrando mas allá Libros auxiliares registrando mas allá
Libros auxiliares registrando mas allá
 
Catalogo de cuentas contabilidad
Catalogo de cuentas contabilidad Catalogo de cuentas contabilidad
Catalogo de cuentas contabilidad
 
Introducción a Javascript: Formularios
Introducción a Javascript: FormulariosIntroducción a Javascript: Formularios
Introducción a Javascript: Formularios
 
¿que es mongodb?
¿que es mongodb?¿que es mongodb?
¿que es mongodb?
 
Teoria de-carteras1
Teoria de-carteras1Teoria de-carteras1
Teoria de-carteras1
 
conceptos basicos de contabilidad I semestre
conceptos basicos de contabilidad I semestreconceptos basicos de contabilidad I semestre
conceptos basicos de contabilidad I semestre
 
Ventajas vs Desventajas se SGBD
Ventajas vs Desventajas se SGBDVentajas vs Desventajas se SGBD
Ventajas vs Desventajas se SGBD
 
Elementos de la base de datos
Elementos de la base de datosElementos de la base de datos
Elementos de la base de datos
 
UNIDAD V actividad 2: metodos de depreciacion
UNIDAD V actividad 2: metodos de depreciacion UNIDAD V actividad 2: metodos de depreciacion
UNIDAD V actividad 2: metodos de depreciacion
 
MongoDB
MongoDBMongoDB
MongoDB
 
Principales mercados financieros internacionales....
Principales mercados financieros internacionales....Principales mercados financieros internacionales....
Principales mercados financieros internacionales....
 
Modelos de objetos semanticos
Modelos de objetos semanticosModelos de objetos semanticos
Modelos de objetos semanticos
 
Presentación del tir
Presentación del tirPresentación del tir
Presentación del tir
 
Principales codigos visual basic
Principales codigos visual basicPrincipales codigos visual basic
Principales codigos visual basic
 
Importancia de la Contabilidad
Importancia de la ContabilidadImportancia de la Contabilidad
Importancia de la Contabilidad
 

Destacado

Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...
Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...
Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...David Zapateria Besteiro
 
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...David Zapateria Besteiro
 
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...David Zapateria Besteiro
 
Javascript - Módulo 9: Geolocalización en HTML5, Google maps, y SVG
Javascript - Módulo 9: Geolocalización en HTML5, Google maps, y SVGJavascript - Módulo 9: Geolocalización en HTML5, Google maps, y SVG
Javascript - Módulo 9: Geolocalización en HTML5, Google maps, y SVGDavid Zapateria Besteiro
 
Javascript - Módulo 8: LocalStorage, iFrames, Origin policy y JSON
Javascript - Módulo 8: LocalStorage, iFrames, Origin policy y JSONJavascript - Módulo 8: LocalStorage, iFrames, Origin policy y JSON
Javascript - Módulo 8: LocalStorage, iFrames, Origin policy y JSONDavid Zapateria Besteiro
 
Introducción al Diseño web
Introducción al Diseño webIntroducción al Diseño web
Introducción al Diseño webciwmx
 
Las 4 Cosas que Yo quiero ser Capaz de Decir
Las 4 Cosas que Yo quiero ser Capaz de DecirLas 4 Cosas que Yo quiero ser Capaz de Decir
Las 4 Cosas que Yo quiero ser Capaz de DecirValentin Moraleja
 
Ajax: Un nuevo enfoque - flisol2008
Ajax: Un nuevo enfoque - flisol2008Ajax: Un nuevo enfoque - flisol2008
Ajax: Un nuevo enfoque - flisol2008Juan Carbajal
 
5. Interacción con el usuario: eventos y formularios
5. Interacción con el usuario: eventos y formularios5. Interacción con el usuario: eventos y formularios
5. Interacción con el usuario: eventos y formulariosLaura Folgado Galache
 
Vishub description Global Excursion
Vishub description Global ExcursionVishub description Global Excursion
Vishub description Global ExcursionJuan Quemada
 
Arquitectura del Web 2
Arquitectura del Web 2Arquitectura del Web 2
Arquitectura del Web 2Juan Quemada
 
Isabel: Reuniones, Clases y Congresos a través de Internet
Isabel: Reuniones, Clases y Congresos a través de InternetIsabel: Reuniones, Clases y Congresos a través de Internet
Isabel: Reuniones, Clases y Congresos a través de InternetJuan Quemada
 
Internet Ice091117
Internet Ice091117Internet Ice091117
Internet Ice091117Juan Quemada
 

Destacado (20)

Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...
Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...
Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...
 
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
 
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
 
Javascript - Módulo 9: Geolocalización en HTML5, Google maps, y SVG
Javascript - Módulo 9: Geolocalización en HTML5, Google maps, y SVGJavascript - Módulo 9: Geolocalización en HTML5, Google maps, y SVG
Javascript - Módulo 9: Geolocalización en HTML5, Google maps, y SVG
 
Javascript - Módulo 8: LocalStorage, iFrames, Origin policy y JSON
Javascript - Módulo 8: LocalStorage, iFrames, Origin policy y JSONJavascript - Módulo 8: LocalStorage, iFrames, Origin policy y JSON
Javascript - Módulo 8: LocalStorage, iFrames, Origin policy y JSON
 
Introducción al Diseño web
Introducción al Diseño webIntroducción al Diseño web
Introducción al Diseño web
 
Las 4 Cosas que Yo quiero ser Capaz de Decir
Las 4 Cosas que Yo quiero ser Capaz de DecirLas 4 Cosas que Yo quiero ser Capaz de Decir
Las 4 Cosas que Yo quiero ser Capaz de Decir
 
oferta_educativa_11_12
oferta_educativa_11_12oferta_educativa_11_12
oferta_educativa_11_12
 
Ajax: Un nuevo enfoque - flisol2008
Ajax: Un nuevo enfoque - flisol2008Ajax: Un nuevo enfoque - flisol2008
Ajax: Un nuevo enfoque - flisol2008
 
Desarrollo de Aplicaciones Web 2.0 con GWT
Desarrollo de Aplicaciones Web 2.0 con GWTDesarrollo de Aplicaciones Web 2.0 con GWT
Desarrollo de Aplicaciones Web 2.0 con GWT
 
5. Interacción con el usuario: eventos y formularios
5. Interacción con el usuario: eventos y formularios5. Interacción con el usuario: eventos y formularios
5. Interacción con el usuario: eventos y formularios
 
Vishub description Global Excursion
Vishub description Global ExcursionVishub description Global Excursion
Vishub description Global Excursion
 
Arquitectura del Web 2
Arquitectura del Web 2Arquitectura del Web 2
Arquitectura del Web 2
 
CSS
CSSCSS
CSS
 
Isabel: Reuniones, Clases y Congresos a través de Internet
Isabel: Reuniones, Clases y Congresos a través de InternetIsabel: Reuniones, Clases y Congresos a través de Internet
Isabel: Reuniones, Clases y Congresos a través de Internet
 
Introducción CSS
Introducción CSSIntroducción CSS
Introducción CSS
 
Presentación TEWC
Presentación TEWCPresentación TEWC
Presentación TEWC
 
Internet Ice091117
Internet Ice091117Internet Ice091117
Internet Ice091117
 
0 entorno php
0 entorno php0 entorno php
0 entorno php
 
Entorno PHP
Entorno PHPEntorno PHP
Entorno PHP
 

Similar a Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e interacción

Capítulo 1 Qbasic entrada y salida básica
Capítulo 1  Qbasic entrada y salida básicaCapítulo 1  Qbasic entrada y salida básica
Capítulo 1 Qbasic entrada y salida básicaJulio Ayala Rolón
 
Apuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje cApuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje cZalimanunezc
 
Turbo pascal 7 guia principal
Turbo pascal 7 guia principalTurbo pascal 7 guia principal
Turbo pascal 7 guia principalhanithaw1
 
Clase lenguaje c
Clase lenguaje c Clase lenguaje c
Clase lenguaje c Mar15marian
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxxMar15marian
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxxMar15marian
 
Republica bolivariana de venezuela
Republica bolivariana de venezuelaRepublica bolivariana de venezuela
Republica bolivariana de venezuelaroyimar
 
El lenguaje c
El lenguaje cEl lenguaje c
El lenguaje cjoeshego
 
40278 leng deprog1
40278 leng deprog140278 leng deprog1
40278 leng deprog1Luis Herrera
 
Fundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octaveFundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octaveGabriel Romero
 
Estructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacionEstructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacionandreinagracielarojasadam
 
Quasi - Lenguaje C Mostrando Datos
Quasi - Lenguaje C Mostrando DatosQuasi - Lenguaje C Mostrando Datos
Quasi - Lenguaje C Mostrando Datosdegarden
 
Introducción a los Lenguaje de Programación.pptx
Introducción a los Lenguaje de Programación.pptxIntroducción a los Lenguaje de Programación.pptx
Introducción a los Lenguaje de Programación.pptxJosé Luis Alonso Ochoa
 

Similar a Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e interacción (20)

Los lenguajes
Los lenguajesLos lenguajes
Los lenguajes
 
Capítulo 1 Qbasic entrada y salida básica
Capítulo 1  Qbasic entrada y salida básicaCapítulo 1  Qbasic entrada y salida básica
Capítulo 1 Qbasic entrada y salida básica
 
Fundamentos de Lenguaje C
Fundamentos de Lenguaje CFundamentos de Lenguaje C
Fundamentos de Lenguaje C
 
Apuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje cApuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje c
 
Programacion c
Programacion cProgramacion c
Programacion c
 
Turbo pascal 7 guia principal
Turbo pascal 7 guia principalTurbo pascal 7 guia principal
Turbo pascal 7 guia principal
 
Clase lenguaje c
Clase lenguaje c Clase lenguaje c
Clase lenguaje c
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxx
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxx
 
Tipos de datos en C
Tipos de datos en CTipos de datos en C
Tipos de datos en C
 
Republica bolivariana de venezuela
Republica bolivariana de venezuelaRepublica bolivariana de venezuela
Republica bolivariana de venezuela
 
El lenguaje c
El lenguaje cEl lenguaje c
El lenguaje c
 
40278 leng deprog1
40278 leng deprog140278 leng deprog1
40278 leng deprog1
 
Visual Basic
Visual BasicVisual Basic
Visual Basic
 
Fundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octaveFundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octave
 
Estructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacionEstructura sintactica de los lenguajes de programacion
Estructura sintactica de los lenguajes de programacion
 
Diapo04
Diapo04Diapo04
Diapo04
 
Quasi - Lenguaje C Mostrando Datos
Quasi - Lenguaje C Mostrando DatosQuasi - Lenguaje C Mostrando Datos
Quasi - Lenguaje C Mostrando Datos
 
Introducción a los Lenguaje de Programación.pptx
Introducción a los Lenguaje de Programación.pptxIntroducción a los Lenguaje de Programación.pptx
Introducción a los Lenguaje de Programación.pptx
 
Introduccion Lenguaje C Blanca
Introduccion Lenguaje  C BlancaIntroduccion Lenguaje  C Blanca
Introduccion Lenguaje C Blanca
 

Último

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 

Último (20)

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 

Javascript - Módulo 4: Booleano, if/else, string, número, DOM, eventos e interacción

  • 1. JavaScript: Booleanos y sentencia if/else 1 © Juan Quemada, DIT, UPM
  • 2. Booleanos: true y false 2 © Juan Quemada, DIT, UPM El tipo booleano solo posee los valores: true y false. Se combinan con operadores lógicos: negación: ! !true => false !false => true op. y: && true && true => true true && false => false false && true => false false && false => false op. o: || true || true => true true || false => true false || true => true false || false => false Un booleano se obtiene como resultado de: - comparación de orden de números menor: < menor_o_igual: <= mayor: > mayor_o_igual: >= - comparación de identidad de valores identidad: === no_identidad: !==
  • 3. Booleanos: true y false 3 © Juan Quemada, DIT, UPM El tipo booleano solo posee los valores: true y false. Un booleano se obtiene como resultado de: - comparación de orden de números menor: < menor_o_igual: <= mayor: > mayor_o_igual: >= - comparación de identidad de valores identidad: === no_identidad: !== Se combinan con operadores lógicos: negación: ! !true => false !false => true op. y: && true && true => true true && false => false false && true => false false && false => false op. o: || true || true => true true || false => true false || true => true false || false => false
  • 5. Sentencia if/else 5 © Juan Quemada, DIT, UPM La sentencia if/else comienza con la palabra reservada if El primer bloque de sentencias va después de la condición, delimitado entre llaves: {} El segundo bloque de sentencias va precedido por la palabra reservada else y delimitado entre llaves: {} La condición va entre paréntesis. Según sea true o false, se ejecuta el primer o el segundo bloque. La condición se evalúa a true o a false en función del estado del progr. (valores de las variables). Crea la variable numero y le asigna un valor aleatorio entre 1 y 1.
  • 7. 7 Sentencia if/else La sentencia if tiene ahora solo la primera parte. Esta cambia el contenido asignado a la variable por str = ‘ MENOR que 1,5’ Este programa es equivalente al anterior, pero con diferente estructura. No utiliza la parte else (opcional), pero añade la variable str = ‘ MAYOR que 1,5’ El mensaje enviado a consola se genera concatenando numero y str. © Juan Quemada, DIT, UPM
  • 8. Clase Date n new Date() crea objetos pertenecientes a esta clase w new Date() devuelve un objeto con fecha y hora del reloj en el momento de crear el objeto Sobre los objetos de esta clase se pueden invocar los métodos definidos para ella n getDay(), getHours(), getMinutes(), getFullYear(), ….. w Invocar un método que no está definido en un objeto da un error_de_ejecución Más información sobre sus métodos y propiedades en: n https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Date La clase Date: fechas y horas 8© Juan Quemada, DIT, UPM new Date() crea un objeto con la fecha y la hora en el momento de crearlo. Sus métodos toString(), getDay(), .. permiten obtener fecha, día, ..
  • 9. if/else-if encadenado 9 © Juan Quemada, DIT, UPM Las sentencias if/else pueden encadenarse así, para comprobar múltiples condiciones en cascada (de las cuales solo se ejecutará una), tal y como se hace para seleccionar el saludo. En esta variante añadimos al ejemplo fecha y hora un título de nivel 1 (h1) vacío, en el que se inserta un saludo (Buenos días/tardes/noches) en función de la hora del día.
  • 10. Final del tema 10 © Juan Quemada, DIT, UPM
  • 11. Ejemplo con prompt() 11 © Juan Quemada, DIT, UPM En este ejemplo el número lo teclea el usuario en el cajetín de la ventana que despliega la función prompt(<msj>). prompt() es una función de JavaScript en desuso, pero muy sencilla de utilizar.
  • 12. isNaN(numero) determina (devuelve true) si numero es un literal de número incorrecto, indicandolo con un mensaje. Sentencia if/else-if 12 © Juan Quemada, DIT, UPM Las sentencias if/else pueden encadenarse así, para comprobar múltiples condiciones en cascada (de las cuales solo se ejecutará una), tal y como se hace en el ejemplo de la función sonido.
  • 13. Interacción sencilla basada en "pop-ups” alert(msj): n presenta un mensaje al usuario w Retorna al pulsar OK confirm(msj): n Presenta mensaje y pide confirmación/rechazo w Retorna al pulsar, devuelve true(Ok)/false(Cancel) prompt(msj): n Presenta mensaje y pide un dato de entrada w Al pulsar OK, retorna y devuelve string introducido n Si se pulsa Cancel devuelve "null” Funciones alert(), confirm() y prompt() 13 © Juan Quemada, DIT, UPM
  • 14. JavaScript: el tipo string 14 © Juan Quemada, DIT, UPM
  • 15. El tipo string Los literales de string se utilizan para representar textos escritos n Puede representar lenguas diferentes porque utiliza el código UNICODE w Lenguas y símbolos soportados en UNICODE: http://www.unicode.org/charts/ Literal de string: textos delimitados por comillas o apóstrofes n "hola, que tal", 'hola, que tal', 'Γεια σου, ίσως' o ' ' w en la línea anterior se representa "hola, que tal" en castellano, griego y chino n String vacío: "" o '' n "texto 'entrecomillado' " w comillas y apóstrofes se pueden anidar: 'entrecomillado' forma parte del texto Operador de concatenación de strings: + n "Hola" + " " + "Pepe" => "Hola Pepe" 15 © Juan Quemada, DIT, UPM
  • 16. Alfabeto, código y codificación Juego de caracteres o alfabeto n Conjunto de símbolos normalizados para representar una lengua Código de caracteres n Conjunto de puntos de código dados a los símbolos de un alfabeto, p.e. w ASCII: alfabeto inglés codificado en 7 bits (128 caracteres y 95 imprimibles) w ISO-8859-1, 2, .., 15: Alfabetos de Europa occidental codificados en 8 bits w UNICODE: código internacionalizado que contiene casi todos los alfabetos w Posee 17 planos codificados en 2 bytes cada uno (1er Plano: BMP) Codificación n representación binaria de un código de caracteres w ASCII e ISO Latin-x: el valor del punto del código coincide con la representación binaria w UNICODE UTF-8: Codificación binaria en 1, 2, 3 o 4 bytes eficiente con lenguas latinas w UNICODE UTF-16: Codificación del plano BMP en 2 bytes y de otros planos en 4 bytes w UNICODE UTF-32: Codificación de todos los planos en 4 bytes 16 © Juan Quemada, DIT, UPM
  • 17. JavaScript utiliza el plano básico multilingüe (BMP) de UNICODE n Caracteres codificados en 2 octetos (16 bits): 65536 combinaciones El texto se introduce en el ordenador tecleando en el teclado n Los teclados suelen incluir solo las teclas del alfabeto(s) de un país w Tecleando solo es posible introducir un conjunto muy pequeño de símbolos n Caracteres no incluidos en el teclado pueden añadirse por "corta y pega” w por ejemplo, de strings traducidos con Google translate: https://translate.google.es n O también pueden añadirse con los códigos escapados w Permiten introducir caracteres no existentes en el teclado con códigos especiales Pantalla: es gráfica y puede mostrar cualquier carácter 17 © Juan Quemada, DIT, UPM Entrada y Salida de Caracteres Ejemplos de teclados
  • 18. Definen caracteres UNICODE n Comienzan con barra inversa: … w La definición solo incluye caracteres ASCII w Se incluyen en strings como otros caracteres Hay tres tipos n Caracteres de control ASCII n Caracteres UNICODE n Caracteres ISO-8859-1 Caracteres UNICODE o ISO-8859-1 se definen con punto de código, así: n UNICODE: uHHHH donde HHHH es el punto del código (4 dígitos hex), p.e. u005C n ISO-8859-1: xHH donde HH es el punto del código (2 dígitos hex), p.e. x5C Algunos ejemplos n Las "Comillas dentro de "comillas"" deben ir escapadas dentro del string. n En "Dos n lineas” el retorno de línea (n) separa las dos líneas. n En "Dos u000A lineas” las líneas se separan con el código UNICODE u000A equivalente a n. 18 © Juan Quemada, DIT, UPM Códigos escapados CARACTERES DE CONTROL ASCII NUL (nulo): 0, x00, u0000 Backspace: b, x08, u0008 Horizontal tab: t, x09, u0009 Newline: n, x0A, u000A Vertical tab: t, x0B, u000B Form feed: f, x0C, u000C Carriage return: r, x0D, u000D Comillas (dobles): ", x22, u0022 Apóstrofe : ', x27, u0027 Backslash: , x5C, u005C
  • 19. Ejemplos de codificación 19 © Juan Quemada, DIT, UPM Codificación Texto Codificación hexadecimal ASCII: codificación que soporta solo la lengua inglesa. hola! cañón 68 6f 6c 61 21 0a 63 61 xx xx 6e ISO 8859 1 (Latin 1): codificación utilizada en páginas HTML no internacionalizadas. hola! cañón 68 6f 6c 61 21 0a 63 61 f1 f3 6e UTF-8: codificación de UNICODE utilizada hoy en páginas HTML. hola! cañón 68 6f 6c 61 21 0a 63 61 c3 b1 c3 b3 6e UTF-16BE: codificación del plano BMP de UNICODE utilizada en programas JavaScript hola! cañón 00 68 00 6f 00 6c 00 61 00 21 00 0a 00 63 00 61 00 f1 00 f3 00 6e hola! cañon se codifica en formato xHH como: x68x6fx6cx61x21 x0ax63x61xf1xf3x6e El código ASCII solo permite codificar símbolos del alfabeto inglés, por lo que los símbolos ñ y ó no se pueden representar. JavaScript soporta los símbolos del plano UNICODE-BMP, que corresponden a la codificación UTF-16BE (Big Endian). hola! cañon se codifica en formato uHHHH como: u0068u006fu006c u0061u0021u000au0063u0061u00f1u00f3u006e UTF-8 es una codificación de longitud variable, que permite representar todos los planos de UNICODE. Es el más eficiente para representar lenguas latinas y se utiliza mucho en páginas Web internacionalizadas.
  • 20. Caracteres ASCII (Basic Latin) en UNICODE BMP © UNICODE: http://www.unicode.org/charts/PDF/U0000.pdf 20 © Juan Quemada, DIT, UPM
  • 21. Extensión ISO Latin1 en UNICODE BMP © UNICODE: http://www.unicode.org/charts/PDF/U0080.pdf 21 © Juan Quemada, DIT, UPM ¥ será "xA5" o "u00A5"
  • 22. Radicales Kangxi de UNICODE BMP © UNICODE: http://www.unicode.org/charts/PDF/U2F00.pdf 22 © Juan Quemada, DIT, UPM será "u2FC0"
  • 23. Métodos de String Algunos métodos y elementos útiles de String n Más info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String Un string es un array de caracteres n un índice entre o y número_de_caracteres-1 referencia cada carácter Acceso como array: 'ciudad'[2] => 'u' Propiedad: 'ciudad'.length => 6 n La propiedad length contiene el número de caracteres del string Método: 'ciudad'.substring(2,5) => 'uda' n devuelve el substring comprendido entre ambos índices Método: 'ciudad'.charCodeAt(2) => 117 n devuelve el número (decimal) con código UNICODE del tercer carácter Método: String.fromCharCode(117) => 'u' n devuelve el string con el carácter correspondiente al código numérico (decimal) 23 © Juan Quemada, DIT, UPM ciudad [0] [1] ........ [5]
  • 24. Ejemplos de strings 24 © Juan Quemada, DIT, UPM La Ñ existe en el código ISO-8859-1 y su código numérico en hexadecimal es d1, por lo que se puede incluir en un string tecleando (1ª) o como xd1 (2ª). La á existe también en el código ISO-8859-1 y la introducimos tecleando el acento y luego la a (1ª) o con el código numérico en hexadecimal xe1 (2ª). La barra inclinada (backslash) debe escaparse () para que se visualice. EL Euro no existe en ISO-8859-1 porque este código se creo antes de existir el Euro. Unicode se actualizó al aparecer el Euro añadiendo el símbolo € con el código u20ac. EL Yen Japonés si existe en ISO-8859-1: código hexadecimal xa5. Un string es un array (matriz) de caracteres, numerados de 1 a n-1 (último-1). "Ciudad"[1] indexa el segundo carácter del string, el primero será "Ciudad"[0]. Al invocar el método charCodeAt(1) con el operador "." sobre el string "Ciudad" nos devuelve el valor numérico decimal del punto del código del 2º carácter ("i"). String.fromCharCode(105) realiza la operación inversa, devuelve un string con el carácter cuyo valor (punto del código) se pasa como parámetro. "Ciudad".substring(3,5) devuelve la subcadena entre 3 y 5: "da" "Ciudad".substring(3,5).length devuelve la longitud de la subcadena devuelta (“da”), que tiene 2 caracteres.
  • 25. JavaScript: el tipo number 25 © Juan Quemada, DIT, UPM
  • 26. Tipo number Los números del tipo number n se representan con literales de números JavaScript 3 y 5 (ES3 y ES5) n tiene 3 formatos de literales w Decimales, hexadecimales y coma flotante Decimales n Enteros: 1, 32, …. n Enteros con decimales: 1.2, 32.1, …. Hexadecimales n Solo enteros: 0xFF, 0X10, ….. Coma flotante (decimal) n Coma flotante: 3.2e1 (3,2x10 1 ) w sintaxis: <mantisa>e<exponente> 26 © Juan Quemada, DIT, UPM 10 + 4 => 14 // sumar 10 - 4 => 6 // restar 10 * 4 => 40 // multiplicar 10 / 4 => 2.5 // dividir 10 % 4 => 2 // operación resto 0xA + 4 => 14 // A es 10 en base 16 0x10 + 4 => 20 // 10 es 16 en base 16 3e2 + 1 => 301 // 3x102 3e-2 + 1 => 1,03 // 3x10-2
  • 27. El tipo number posee 2 valores especiales n NaN n Infinity NaN (Not a Number) n representa un valor no numérico w números complejos w strings no convertibles a números Infinity representa n El infinito matemático n Desbordamiento El tipo number utiliza el formato n IEEE 754 coma flotante doble precisión (64 bits) w Reales máximo y mínimo: ~1,797x10^308 y 5x10^-324 w Entero máximo: 9007199254740992 n Cualquier literal se convierte a este formato 27 +’xx' => NaN // no representable +10/0 => Infinity // Infinito matemático -10/0 => -Infinity // Infinito matemático // Números demasiado grandes 5e500 => Infinity //desborda -5e500 => -Infinity //desborda // Número demasiado pequeño 5e-500 => 0 // redondeo // los decimales dan error de redondeo 0.1 + 1.2 => 1,3000000000004 Infinity y NaN © Juan Quemada, DIT, UPM
  • 28. El Modulo Math contiene n constantes y funciones matemáticas Constantes n Números: E, PI, SQRT2, … Funciones n sin(x), cos(x), tan(x), asin(x), …. n log(x), exp(x), pow(x, y), sqrt(x), …. n abs(x), ceil(x), floor(x), round(x), …. n min(x,y,z,..), max (x,y,z,..), … n random() Mas info: n https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math 28 Modulo Math Math.PI => 3.141592653589793 Math.E => 2.718281828459045 // numero aleatorio entre 0 y 1 Math.random() => 0.7890234 Math.pow(3,2) => 9 // 3 al cuadrado Math.sqrt(9) => 3 // raíz cuadrada de 3 Math.min(2,1,9,3) => 1 // número mínimo Math.max(2,1,9,3) => 9 // número máximo Math.floor(3.2) => 3 Math.ceil(3.2) => 4 Math.round(3.2) => 3 Math.sin(1) => 0.8414709848078965 Math.asin(0.8414709848078965) => 1 © Juan Quemada, DIT, UPM
  • 29. Algunos métodos útiles de Number son n toFixed(n) devuelve string equiv. a número w redondeando a n decimales n toPrecision(n) devuelve string equiv. a número w redondeando número a n dígitos n toExponential(n) devuelve string eq. a número w redondeando mantisa a n decimales n toString([base]) convierte un número a w string con el número en la base indicada w [base] es opcional, por defecto base 10 Los métodos se invocan con el operador punto: "." n OJO! El número debe estar entre paréntesis para invocar el método, sino da error En este enlace se pueden ver otros métodos de Number: n https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number 29 Métodos de Number (1).toFixed(2) => "1.00" (1).toPrecision(2) => "1.0" 1.toFixed(2) => Error Math.PI.toFixed(4) => "3.1416" Math.E.toFixed(2) => "2.72" (1).toExponential(2) => "1.00e+0" (31).toString(2) => "11111" (31).toString(10) => "31" (31).toString(16) => "1f" (10.75).toString(2) => "1010.11” (10.75).toString(16) => "a.c” © Juan Quemada, DIT, UPM
  • 30. parseInt(string, [base]): función predefinida de JS que convierte string a number n string se interpreta como un entero en la base indicada (por defecto base 10) parseFloat(string): función predefinida de JS que convierte string a number n string se interpreta coma un número en coma flotante ParseInt(..) o parseFloat(..): realizan una conversión similar a la conversión automática n OJO! Convierten a número si un prefijo no vacío del string representa un número 30 parseInt(..) y parseFloat(..) parseInt('60') => 60 parseInt(’60.45') => 60 parseInt('0060') => 60 parseInt('xx') => NaN parseFloat("1e2") => 100 parseFloat("1.3e2") => 130 parseFloat("xx1e2") => NaN parseInt("1010") => 1010 parseInt("1010",2) => 10 parseInt("12",8) => 10 parseInt("10",10) => 10 parseInt("a",16) => 10 parseInt("01xx") => 1 parseInt("01+4") => 1 © Juan Quemada, DIT, UPM
  • 31. JavaScript: Booleanos 31 © Juan Quemada, DIT, UPM
  • 32. El tipo boolean (booleano) solo tiene 2 valores n true: verdadero n false: falso Los valores booleanos se utilizan para tomar decisiones n En sentencias condicionales: If/else, bucles, etc. La regla de conversión de otros tipos a booleano es n 0, -0, NaN, null, undefined, "", '' son equivalentes a false n resto de valores son equivalentes a true La negación convierte un valor en el valor booleano equivalente negado n La doble negación convierte un valor en su equivalente booleano: !!<v> 32 !4 => false !"4" => false !null => true !0 => true !!"" => false !!4 => true Tipo booleano © Juan Quemada, DIT, UPM
  • 33. Identidad o igualdad estricta: === n determina si 2 valores son exactamente los mismos w Es igualdad semántica solo en: number, boolean, strings y undefined w OJO! En objetos es identidad de referencias (punteros) n La identidad determina igualdad de tipo y de valor Desigualdad estricta: !== n negación de la igualdad estricta Igualdad y desigualdad débil: == y != n OJO! No debe utilizarse w Realiza conversiones impredecibles Mas info: n https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Sameness 33 Operadores de identidad e igualdad Tipos básicos: identidad 0 === 0 => true 0 === 0.0 => true 0 === 0.00 => true 0 === 1 => false 0 === false => false '2' === "2" => true '2' === "02" => false '' === "" => true '' === " " => false © Juan Quemada, DIT, UPM
  • 34. JavaScript tiene 4 operadores de comparación n Menor: < n Menor o igual: <= n Mayor: > n Mayor o igual: >= Utilizar comparaciones solo con números (number) n donde es una relación de orden bien definida No se recomienda utilizar con otros tipos: string, boolean, object, .. n Las relación de orden en estos tipos existe, pero es muy poco intuitiva w https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators 34 1.2 < 1.3 => true 1 < 1 => false 1 <= 1 => true 1 > 1 => false 1 >= 1 => true false < true => true "a" < "b" => true "a" < "aa" => true Operadores de comparación © Juan Quemada, DIT, UPM
  • 35. Operadores y (&&) y o (||) Operador lógico y (and): <v1> && <v2> n devuelve <v1> o <v2> sin modificarlos w <v1> && <v2> w devuelve <v1> -> si <v1> es equivalente a false w devuelve <v2> -> en caso contrario Operador lógico o (or): <v1> || <v2> n devuelve <v1> o <v2> sin modificarlos w <v1> || <v2> w devuelve <v1> -> si <v1> es equivalente a true w devuelve <v2> -> en caso contrario 35 © Juan Quemada, DIT, UPM true && true => true false && true => false true && false => false false && false => false 0 && true => 0 1 && "5" => "5" true || true => true false || true => true true || false => true false || false => false undefined || 1 => 1 13 || 1 => 13
  • 36. El operador de asignación condicional n devuelve un valor en función de una condición lógica (siempre entre paréntesis) w Es una versión funcional del operador if/else Sintaxis: (condición) ? <v1> : <v2> n devuelve <v1> -> si condición es equivalente a true n devuelve <v2> -> en caso contrario Esta sentencia permite definir parámetros por defecto en funciones con la asignación n param = (x!==undefined) ? x : <parámetro_por_defecto>; w También se define a veces como "x || <parámetro_por_defecto>”, pero aplicaría también si x es "", 1, null, .. 36 function comer (persona, comida) { persona = (persona !== undefined) ? persona : 'Alguién'; comida = (comida !== undefined) ? comida : 'algo'; return (persona + " come " + comida); }; comer('José'); => 'José come algo' comer(); => 'Alguien come algo' (7) ? 1 : 7 => 1 ("") ? 1 : 7 => 7 (true) ? 1 : 7 => 1 (false)? 1 : 7 => 7 Operador de asignación condicional © Juan Quemada, DIT, UPM
  • 37. JavaScript: DOM, Eventos e interacción con el usuario 37 © Juan Quemada, DIT, UPM
  • 38. HTML permite definir eventos de interacción con el usuario n Los eventos se definen con atributos con nombres especiales de elementos HTML w onclick (hacer clic), ondbclick (hacer doble clic), onload (página cargada), … n http://librosweb.es/libro/javascript/capitulo_6/modelo_basico_de_eventos_2.html El valor asignado al atributo es código JavaScript (string) ejecutado al ocurrir el evento n this referencia el objeto DOM del elemento HTML asociado al evento w onclick="this.src ='scare.png'" asigna al atributo src, de la imagen, el URL al icono scare.png n this.src se refiere a la propiedad asociada al atributo src del objeto DOM de la imagen w onclick="this.src ='wait.png'" asigna al atributo src, de la imagen, el URL al icono wait.png El ejemplo asocia 2 eventos a la imagen (elemento <img .... >) n onclick="this.src ='scare.png'" muestra el icono scare.png al hacer clic en la imagen n ondbclick="this.src ='wait.png'" muestra el icono clic.png al hacer doble clic en la imagen Eventos en HTML 38 © Juan Quemada, DIT, UPM
  • 39. Ejemplo de calculadora muy sencilla n Con los elementos básicos de interacción w cajetines para teclear texto n <input type="text" ….. > w botones para interactuar con el programa n <button>..nombre..</button> Comportamiento de la calculadora n Al pulsar el botón se calcula w el cuadrado del número tecleado en el cajetín n Al seleccionar el cajetín w se borra el contenido existente La calculadora tiene 3 elementos HTML n Un texto indicativo n El cajetín donde teclear n El botón con el que calcular el cuadrado 39 Calculadora © Juan Quemada, DIT, UPM
  • 40. Calculadora: DOMLa interacción con el usuario se realiza con: n Botón donde clicar: <button onclick="cuadrado()"> x<sup>2 </sup></button> w Este elemento muestra el texto HTML "x<sup>2</sup>" donde la marca <sup> define un exponente o superíndice n Cajetín de entrada de texto: <input type="text" id="n1" onclick="vaciar()"> w El objeto DOM obtenido con var num = document.getElementById("n1") permite interacción con el cajetín Las propiedades del objeto num dan acceso a los atributos HTML y a otros, por ejemplo n num.type contiene "text" n num.id contiene "n1" n num.value contiene "9" w es el contenido tecleado en el cajetín n num.innerHTML contiene: "" w <input> no tiene HTML interno n num.outerHTML contiene: w "<input type="text" id="n1" onclick="vaciar()">" n Es el HTML completo del elemento Modificar la página visualizada, por ej. n Asignar num.value = 5; w Mostrará 5 en el cajetín n Asignar num.outerHTML = <p>Hola</p> w Mostrará un párrafo con“Hola" en vez del cajetín 40 © Juan Quemada, DIT, UPM
  • 41. Los objetos DOM tienen eventos asociados atendidos por funciones, por ej. n El atributo onClick="vaciar()" de <input type="text" id="n1" onClick="vaciar()"> w Asocia al evento clicar en el cajetín la función vaciar() que vacía el cajetín al ocurrir este n El atributo onClick="cuadrado()" de <button onClick="cuadrado()"> …. w Asocia al evento clicar en <button..> la función cuadrado() que muestra en el cajetín el cuadrado del número contenido en este antes de clicar Existen muchos más eventos de interacción con el usuario n Se puede encontrar más información sobre los más básicos en: w http://librosweb.es/libro/javascript/capitulo_6/modelo_basico_de_eventos_2.html Atención a eventos 41 © Juan Quemada, DIT, UPM
  • 42. Calculadora: añadir Botón 1/x 42 En este ejemplo añadimos n Un botón más a la calculadora w El dot calcula el inverso (1/x) del cajetín Añadir un nuevo botón es sencillo n Se añade un nuevo botón HTML w con el texto: 1/x w con atributo : onclick=“inverso()" n asocia inverso() a clic en él n Se añade la función: inverso() w Calcula el inverso del número del cajetín n Se añade una marca de párrafo en HTML w Para separar el cajetín de los botones © Juan Quemada, DIT, UPM
  • 43. Calculadora extendida 43 © Juan Quemada, DIT, UPM Calculadora extendida n Suma o resta 2 números, así: w Se teclea el primer número w Se pulsa + o - w Se teclea el segundo número w se pulsa = Variables num, acc y op n Las variables num, acc y op se definen al principio del script para su uso en las funciones w Las variables globales son visibles en las funciones Evento onLoad y función inic() n El evento onLoad de body indica que se ha construido ya el árbol DOM w Este evento invoca la función inic() que carga en la variable num el objeto DOM de acceso al cajetín, que utilizan el resto de las funciones Variables acc y op n Las variables acc y op guardan el número que está en el cajetín y la operación pulsada (+ o -), cuando se pulsa el botón + (invoca función mas()) o el - (invoca función menos()). Botón = n El botón = invoca la función calcular(), que suma o resta el número que está en el cajetín con el número guardado en acc, dependiendo de la operación (+ o -) que se ha guardado en la variable op
  • 44. Final del tema 44 © Juan Quemada, DIT, UPM