Tema 2
Tema 2
INTRODUCCIÓN AL LENGUAJE
JAVASCRIPT
OBJETIVOS DEL CAPÍTULO
• Conocer las principales características del lenguaje JavaScript .
– BigInt, una nueva primitiva numérica para trabajar con enteros de precisión arbitraria.
– sintaxis dedicada a exportar * como ns de 'module' para su uso dentro de los módulos.
– mayor estandarización del orden de enumeración for-in.
– import.meta, un objeto poblado por el host disponible en los módulos que puede
contener información contextual sobre el módulo.
– Dos nuevas características sintácticas para mejorar el trabajo con valores "nullish"
(nulos o indefinidos): nullish coalescing, un operador de selección de valores.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv=“content-typeH content=Htext/html;
charset=utf-8”>
<title>Hola Mundo</title>
<script type=“text/javascript” src=“HolaMundo.js”>
</script>
</head>
<body></body>
</html>
• Dado que hay distintos lenguajes de script, el atributo type nos permite
decirle al navegador cuál es el usado en el script.
• Así el navegador sabrá que intérprete debe utilizar para ejecutar el script.
<script type="text/javascript">
document.bgColor = "red";
alert('Cambiamos el color de la p\xE1gina’);
</script>
<script type=“text/javascript”>
// Este modo permite comentar una sola línea
/* Este modo permite realizar
comentarios de
varias líneas */
</script>
• Nota: Es posible que también vea un tercer tipo de sintaxis de
comentarios al principio de algunos archivos JavaScript, en este sentido:
#!/usr/bin/env node.
Versión 1:
<script type="text/javascript">var i,j=0;
for (i=0;i<5;i++) { alert("Variable i: "+i);
for (j=0;j<5;j++) { if (i%2==0) {
document.write (i + “-” + j + "<br>");}}}
</script>
Versión 2:
<script type="text/javascript">
var i,j=0;
for (i=0;i<5;i++) {
alert("Variable i: "+i);
for (j=0;j<5; j++) {
if (i%2==0) (
document.write(i + “-” + j + "<br>");
}
}
}
</script>
• JavaScript tiene una serie de palabras que no se pueden usar para definir
nombres de variables, funciones o etiquetas. (No se pueden usar como
identificador)
– Nan
– undefined
– Literal null
– globalThis
• Tenemos también funciones del objeto global:
– eval()
– uneval()
– isFinite()
– isNan()
– parseFloat()
– parseInt()
– decodeURI()
– decodeURIComponent()
– escape()
– unescape()
\” Comilla doble “
\\ Barra invertida \
\n Nueva línea
\r Retorno de carro
\v Tabulador vertical
\t Tabulador
\b Espacio atrás
\f Avance de página
\uXXXX (XXXX = 4 hex digits; range of 0x0000 - UTF-16 code unit / Unicode code point between
0xFFFF) U+0000 and U+FFFF
\u{X} ... \u{XXXXXX} (X…XXXXXX = 1 - 6 hex digits; UTF-32 code unit / Unicode code point between
range of 0x0 - 0x10FFFF) U+0000 and U+10FFFF
\xXX (XX = 2 hex digits; range of 0x00 - 0xFF) ISO-8859-1 character / Unicode code point
between U+0000 and U+00FF
• Cualquier otro valor, incluido un array vacío ([]) o el string “false” serán
inicializados a verdadero.
• No hay que confundir los valores primitivos Boolean true y false con el
true y false de los objetos booleanos.
• Cualquier objeto cuyo valor no sea undefined o null, incluyendo un
objeto booleano cuyo valor sea falso, se evalúa a verdadero cuando se
pasa a una expresión condicional. Por ejemplo, la condición en el
siguiente enunciado si se evalúa a verdadero:
var x = new Boolean(false);
if (x) {
// this code is executed
}
- la declaración de variables.
- la inicialización de variables.
• Es posible declarar más de una variable en una sola línea de código por
medio de comas:
var mi_variable_1, mi_variable_2;
• El contenido de las variables estará indefinido hasta que una parte del
código almacene un valor en ellas.
• Este proceso lo describimos en el siguiente apartado.
• let declara una variable en un ámbito de bloque, variable local y la
inicializa opcionalmente.
let x = 1;
if (x === 1) {
let x = 2;
console.log(x);
// expected output: 2
}
console.log(x);
// expected output: 1
– Con la palabra clave const o let. Por ejemplo, y = 13. Esta sintaxis puede ser
usada para declarar una variable local de block-scope.
let x;
console.log('The value of x is ' + x); // The value of x is undefined
if (true) {
let y = 5;
}
console.log(y); // ReferenceError: y is not defined
• Hoisting de variables
• Otra tema inusual acerca de las variables en JavaScript es que podemos
referirnos a una variable declarada más tarde, sin obtener una excepción.
/**
* Ejemplo 2
*/
// devolverá undefined
var myvar = 'my value';
(function() {
console.log(myvar); // undefined
var myvar = 'local value';
})();
ACTIVIDADES
<script type="text/javascript">
var primer_saludo = "hola";
var segundo_saludo = primer_saludo;
primer_saludo = "hello";
alert(segundo_saludo);
</script>
❖ Operadores aritméticos.
❖ Operadores lógicos.
❖ Operadores de asignación.
❖ Operadores de comparación.
❖ Operadores condicionales.
Variable_1= 1;
Variable_2= ++variable_1;
variable_1= 1;
variable_2= variable_1++;
• http://www.w3im.com/es/js/js_operators.html
7.2 OPERADORES LÓGICOS
• Podemos ver los tres operadores lógicos que existen en la Tabla 2.4.
7.4 OPERADORES DE ASIGNACIÓN
• Podemos obtener métodos abreviados que evitan tener que escribir dos
veces la variable que se encuentra a la izquierda del operador.
<script type="text/javascript">
var dividendo = prompt("Introduce el dividendo: ");
var divisor = prompt("Introduce el divisor: ");
var resultado;
divisor != 0 ? resultado = dividendo/divisor:
alert("No es posible la división por cero");
alert("El resultado es: " + resultado);
</script>
ACTIVIDADES
La precedencia de los operadores determina el orden en que se ejecuta
una expresión. Realice una búsqueda con el fin de encontrar alguna de
las tablas que indiquen el orden de precedencia de los operadores de
JavaScript.
Operador Operación
. [] Acceso a propiedad o invocar método; índice a array
new Crear objeto con constructor de clase
() Invocación de función/método o agrupar expresión
++ -- Pre o post auto-incremento; pre o post auto-decremento
! ~ Negación lógica (NOT); complemento de bits
+ - Operador unitario, números. signo positivo; signo negativo
delete Borrar propiedad de un objeto
typeof void Devolver tipo; valor indefinido
* / % Números. Multiplicación; división; modulo (o resto)
+ Concatenación de string
+ - Números. Suma; resta
<< >> >>> Desplazamientos de bit
< <= > >= Menor; menor o igual; mayor; mayor o igual
instanceof in ¿objeto pertenece a clase?; ¿propiedad pertenece a objeto?
== != === !== Igualdad; desigualdad; identidad; no identidad
& Operación y (AND) de bits
^ Operación ó exclusivo (XOR) de bits
| Operación ó (OR) de bits
&& Operación lógica y (AND)
|| Operación lógica o (OR)
?: Asignación condicional
= Asignación de valor
OP= Asig. con operación: += -= *= /= %= <<= >>= >>>= &= ^= |=
, Evaluación múltiple
❖ Switch.
ACTIVIDADES
EJERCICIOS
9. EJERCICIOS PROPUESTOS
1. Cree un fichero HTML vacío y llámelo EjercicioPropuesto-2.1-Numeros.html. Añada el siguiente código
JavaScript en el cuerpo de la página (entre las etiquetas <body> y </body»:
<script type="text/javascript">
var maxValue Number.MAX_VALUE;
var minValue = Number.MIN_VALUE;
alert(“Max Value: “ + maxValue);
alert(“Min Value: “ + minValue);
alert(“Valor especial: “ + maxValue*2);
</script>
De este modo podremos comprobar el número más grande representable por JavaScript, el número más
cercano a cero y el valor especial que representa el infinito.
<script type="text/javascript">
var countdown = prompt (“lntroduce un número para iniciar la cuenta atrás: “);
while (countdown>0) {
alert(countdown+ “…”);
countdown--;
}
</script>
4. Realice el mismo ejercicio anterior, pero sustituyendo el bucle while por un bucle for.