JavaScript se utiliza, en las páginas HTML para:
Se asocia a menudo con otras tecnologías o lenguajes, como DHTML y Java
Es texto, no precisa de compiladores o herramientas especializadas
Un editor de textos permite la edición de una página en HTML e insertar instrucciones JavaScript
Cómo encaja JavaScript en una página web
Archivo de órdenes, archivo de procesamiento por lotes o guión es un programa simple, que se almacena en un archivo de texto plano. Ejs.:
Creación de un script
JavaScript es:
Fue creado por la empresa Netscape
Integrado en Netscape Navigator en 1996
Estandarizado por ECMA, organismo de normalización suizo (ECMAScript, 1997)
Con JavaScript, se pueden crear páginas web dinámicas
Hay editores WYSIWYG capaces de generar código JavaScript automáticamente
Se puede usar para seleccionar cualquier elemento, atributo o texto de una página en HTML. Ej.:
Se puede usar para añadir o eliminar elementos, atributos y texto a una página.Ej.:
Se pueden especificar un conjunto de etapas que ha de seguir el navegador, que permiten cambiar el contenido de la página. Ej.:
Se puede especificar que se ejecute un script como respuesta a un evento. Ej.:
objeto: document
.: operador miembro (permite acceder a los miembros de un objeto)
método: write ('Universidad de Murcia');
parámetros: 'Universidad de Murcia'
Consiste en:
El código JavaScript se inserta por lo general en la página HTML, también se puede insertar mediante el uso de un archivo externo
Antes de usar una variable es necesario indicarlo. Ej.:
var: Palabra clave para definir variables
aceleracion: Nombre de la variable
Son un tipo especial de variables
Usuales cuando se trabaja con una lista de valores relacionados
Se denominan como cualquier otra variable
Los valores se asignan entre corchetes ([]), separados con comas (array literal)
Otra posibilidad, palabra clave new seguida de Array, con los valores entre paréntesis (array constructor)
Pueden ser de distintos tipos
Se consideran una lista numerada, que comienza con el elemento 0
Cada elemento recibe automáticamente un número llamado index
Para recuperar un elemento se indica el nombre del array y entre corchetes el index
El número de elementos se asigna a length
var colores;
colores= ['blanco', 'verde', 'rojo'];
var itemTres;
itemTres = colores[2]
var numeroColores;
numeroColores = colores.length
// Crea el array
var colores = ['blanco', 'verde', 'rojo'];
// Modifica el tercer elemento
colores[2] ='azul';
Una expresión evalúa resultados a un valor único
Hay dos tipos:
Los operadores permiten un valor a partir de varios
Operadores de asignación
Operador abreviado | Significado |
---|---|
x += y |
x = x + y |
x -= y |
x = x - y |
x *= y |
x = x * y |
x /= y |
x = x / y |
x %= y |
x = x % y |
x <<= y |
x = x << y |
x >>= y |
x = x >> y |
x >>>= y |
x = x >>> y |
x &= y |
x = x & y |
x ^= y |
x = x ^ y |
x |= y |
x = x | y |
OPERADORES |
DESCRIPCIÓN |
+ |
Suma |
– |
Resta |
* |
Multiplicación |
/ |
División |
% |
Resto de una división entre enteros (mod) |
++ |
Incremento una unidad |
-- |
Decremento una unidad |
Orden de ejecución:
Multiplicación y división se ejecutan antes que adición o substracción
Para cambiar el orden se usan paréntesis
total=2+4+10; resultado 16
total=2+4*10; resultado 42
total=(2+4)*10; resultado 60
Se emplea el símbolo + para unir cadenas de caracteres
Los números entre comillas se consideran string
Si se añade un número (sin comillas) pasa a ser parte del string
Si se usan otros operadores aritméticos el resultando es NaN
Los operadores lógicos son típicamente utilizados con valores booleanos (valores lógicos) y devuelven un valor booleano
Operador | Uso | Descripción |
---|---|---|
&& |
expr1 && expr2 |
(AND lógico) Devuelve |
|| |
expr1 || expr2 |
(OR lógico) Devuelve |
! |
!expr |
(NOT lógico) Devuelve false si el operando no puede ser convertido a true, en caso contrario, devuelve true |
Comparan sus operandos y devuelven un valor lógico basado en si la comparación es verdadera (true) o falsa (false)
Operador | Descripción | Ejemplos devolviendo true |
---|---|---|
Igualdad (== ) |
Devuelve true si ambos operandos son iguales. |
3 == var1
3 == '3' |
Desigualdad (!= ) |
Devuelve true si ambos operandos no son iguales. |
var1 != 4 |
Estrictamente igual (=== ) |
Devuelve |
3 === var1 |
Estrictamente desiguales(!== ) |
Devuelve |
var1 !== "3" |
Mayor que (> ) |
Devuelve |
var2 > var1 |
Mayor o igual que (>= ) |
Devuelve true si el operando de la izquierda es mas grande que el operando de la derecha. |
var2 >= var1 |
Menor que (< ) |
Devuelve true si el operando de la izquierda es mas pequeño que el operando de la derecha. |
var1 < var2 |
Menor o igual que (<= ) |
Devuelve true si el operando de la izquierda es mas pequeño o igual que el operando de la derecha. |
var1 <= var2 |
Métodos: como una función, creados en un objeto y son parte
Objetos: sirven para crear modelos usando datos. Incorporan propiedades y métodos
Objetos integrados (Built-in Object): objetos integrados en el navegador
Para crear una función se le debe dar un nombre e incluir entre llaves ({}) las sentencias necesarias para ejecutarla
Es el proceso para "declarar una función"
La palabra clave es function
Al declarar la función se han de indicar parámetros, que actúan como variables
Los argumentos se pueden pasar como valores o como variables. Ej.:
calculaArea(6,4)
anchoPared=6; altoPared=6; calculaArea(anchoPared, altoPared);
var area=ancho*alto;
return area;
}
Var pared1 = calculaArea(3,5);
Var pared2 = calculaArea(8,5);
function calculaArea(ancho, alto) {
Se considera el ejemplo del cálculo de la superficie y volumen de una caja
var area = ancho*alto;
var volumen = ancho*alto*profundo;
var valores = [area, volumen];
return valores;
}
var area1 = obtieneValores(3,2,3)[0];
var volumen1 = obtieneValores(3,2,3)[1];
function obtieneValores(ancho, alto, profundo) {
Una expresión genera un valor. Si una función se sitúa donde un navegador espera una expresión (como argumento de una función), se trata como una expresión
Declaración de función. Ej.:
function area(ancho, alto); {return ancho*alto;}; var dimension = area(3,4);
Función expresión. Ej.:
var area = function area(ancho, alto); {return ancho*alto;}; var dimension = area(3,4);
El ámbito de una variable es la zona del programa en la que se define la variable. Hay dos ámbitos para las variables: global y local. Ej.:
function creaMensaje() {
var mensaje = “Mensaje de prueba”;
}
creaMensaje(); alert(mensaje);
No se muestra nada, mensaje es una variable local
function creaMensaje() {
var mensaje = “Mensaje de prueba”;
alert(mensaje);
}
creaMensaje();
La variable global, está definida en cualquier sitio(incluso dentro de cualquier función)
Los objetos agrupan un conjunto de variables y funciones para crear un modelo de "algo real"
En un objeto, las variables y funciones adquieren nuevos nombres
Si una variable es parte de un objeto, se llama propiedad, como por ejemplo el nombre de un hotel o número de habitaciones
En un objeto las funciones se denominan métodos. Representan tareas que están asociadas con el objeto. Por ejemplo, se puede comprobar cuántas habitaciones están disponibles
Por ejemplo, sobre un hotel:
Se considera que el hotel tiene cinco propiedades y un método
El valor de un método es siempre una función
El valor de una propiedad puede ser un string, número, booleano, array u otro objeto
var hotel = {
nombre: 'Hotel mediaestrella',
habitaciones: 137,
ocupadas: 30,
tipo habitaciones: ['sencilla', 'doble', 'suite'],
wifi: true,
verificaDisponibilidad: function(){
return this.habitaciones-this.ocupadas;
}
};
Para acceder a una propiedad o método de un objeto, se usa el nombre del objeto seguido de un punto (.) y a continuación el nombre de la propiedad o método al que se desea acceder. Ej.:
var habitacionesLibres = hotel.verificaDisponibilidad();
Para actualizar los valores de propiedades de un objeto se usan la notación punto (.) o los corchetes
Para borrar una propiedad se usa la palabra clave delete
Ejemplo de actualización de propiedad:
hotel.nombre = 'Superhotel';
hotel['nombre'] = 'Superhotel';
Ejemplo de
delete hotel.nombre;
hotel.nombre = '';
Con variables y operadores se tiene una sucesión lineal de instrucciones básicas
Estructuras de control de flujo, son instrucciones del tipo:
"si se cumple esta condición, hazlo; si no se cumple, haz esto otro"
"repite esto mientras se cumpla esta condición"
La más utilizada en JavaScript. Se emplea para tomar decisiones en función de una condición:
...
}
if(condicion) {
Si la condición se cumple (true) se ejecutan las instrucciones que se encuentran dentro de {...}
Si no se cumple (false) no se ejecuta ninguna instrucción contenida en {...} y el programa continúa ejecutando el resto de instrucciones
var mostrarMensaje = true;
if(mostrarMensaje) {
alert("Hola Mundo");
}
La condición que controla el if() puede combinar los diferentes operadores lógicos y relacionales
Los operadores AND y OR permiten encadenar varias condiciones simples para construir condiciones complejas:
var mostrado = false;
var usuarioPermiteMensajes = true;
if(!mostrado && usuarioPermiteMensajes) {
alert("Primera vez que se muestra el mensaje");
}
Las condiciones suelen ser del tipo "si se cumple esta condición, hazlo; si no se cumple, haz esto otro"
Variante de la estructura if llamada if...else. Su sintaxis es la siguiente:
...
}
else {
...
}
if(condicion) {
El siguiente ejemplo muestra si una persona está jubilada
var edad 70;
if(edad >= 70) {
alert("Estás jubilado");
}
else {
alert("Todavía estás trabajando o en el paro");
}
if y if...else no son muy eficientes cuando se desea ejecutar de forma repetitiva una instrucción
Bucle for: "mientras la condición indicada se siga cumpliendo, repite la ejecución de las instrucciones definidas dentro del for. Además, después de cada repetición, actualiza el valor de las variables que se utilizan en la condición"
var mensaje = "Estoy dentro de un bucle";
for(var i = 0; i < 5; i++) {
alert(mensaje);
}
Implica el uso de objetos
Sintaxis adaptada a los arrays:
...
}
for(indice in array) {
var dias = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"];
for(i in dias) {
alert(dias[i]);
}
length, calcula la longitud de una cadena de texto
+, concatena varias cadenas de texto
concat, concatena varias cadenas de texto
toUpperCase(), transforma los caracteres a sus correspondientes caracteres en mayúsculas
toLowerCase(), transforma los caracteres a sus correspondientes caracteres en minúsculas
charAt(posicion), obtiene el carácter que se encuentra en la posición indicada
indexOf(caracter), calcula la posición en la que se encuentra el carácter indicado dentro de la cadena
lastIndexOf(caracter), calcula la última posición en la que se encuentra el carácter indicado dentro de la cadena
substring(inicio, final), extrae una porción de una cadena
split(separador), convierte una cadena de texto en un array de cadenas de texto
length, calcula el número de elementos de un array
concat(), se emplea para concatenar los elementos de varios arrays
join(separador), es la función contraria a split(). Une todos los elementos de un array para formar una cadena de texto
pop(), elimina el último elemento del array y lo devuelve
push(), añade un elemento al final del array
shift(), elimina el primer elemento del array y lo devuelve
unshift(), añade un elemento al principio del array
reverse(), modifica un array colocando sus elementos en el orden inverso
NaN, indica un valor numérico no definido
isNaN(), permite proteger a la aplicación de posibles valores numéricos no definidos
Infinity, hace referencia a un valor numérico infinito y positivo (también existe el valor –Infinity para los infinitos negativos)
toFixed(digitos), devuelve el número original con tantos decimales como los indicados por el parámetro
/