Java Script S
Java Script S
Java Script S
Introducción
1.1. ¿Qué es JavaScript?
JavaScript es un lenguaje de programación que se utiliza principalmente para crear páginas
web dinámicas.
Una página web dinámica es aquella que incorpora efectos como texto que aparece y desaparece,
animaciones, acciones que se activan al pulsar botones y ventanas con mensajes de aviso al
usuario.
Este método se emplea cuando se define un bloque pequeño de código o cuando se quieren
incluir instrucciones específicas en un determinado documento HTML que completen las
instrucciones y funciones que se incluyen por defecto en todos los documentos del sitio web.
Las instrucciones JavaScript se pueden incluir en un archivo externo de tipo JavaScript que los
documentos XHTML enlazan mediante la etiqueta <script>. Se pueden crear todos los archivos
JavaScript que sean necesarios y cada documento XHTML puede enlazar tantos archivos
JavaScript como necesite.
Ejemplo:
Archivo codigo.js
Documento XHTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/
xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejemplo de código JavaScript en el propio documento</title>
<script type="text/javascript" src="/js/codigo.js">
</script>
</head>
<body> <p>Un párrafo de
texto.</p> </body> </html>
Además del atributo type, este método requiere definir el atributo src, que es el que indica la
URL correspondiente al archivo JavaScript que se quiere enlazar. Cada etiqueta <script>
solamente puede enlazar un único archivo, pero en una misma página se pueden incluir tantas
etiquetas <script> como sean necesarias.
Los archivos de tipo JavaScript son documentos normales de texto con la extensión .js, que se
pueden crear con cualquier editor de texto como Notepad, Wordpad, EmEditor, UltraEdit, Vi, etc.
Este último método es el menos utilizado, ya que consiste en incluir trozos de JavaScript dentro
del código XHTML de la página:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/
xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Ejemplo
de código JavaScript en el propio documento</title>
</head>
1.4. Sintaxis
La sintaxis de un lenguaje de programación se define como el conjunto de reglas que deben
seguirse al escribir el código fuente de los programas para considerarse como correctos para ese
lenguaje de programación.
JavaScript define dos tipos de comentarios: los de una sola línea y los que ocupan varias líneas.
Los comentarios de una sola línea se definen añadiendo dos barras oblicuas (//) al principio de
la línea.
/* Los comentarios de varias líneas son muy útiles cuando se necesita incluir bastante
información en los comentarios */
alert("mensaje de prueba");
Los comentarios multilínea se definen encerrando el texto del comentario entre los símbolos /*
y */.
En este ejemplo, el script se incluye como un bloque de código dentro de una página HTML. Por
tanto, en primer lugar se debe crear una página HTML correcta que incluya la declaración del
DOCTYPE, el atributo xmlns, las secciones <head> y <body>, la etiqueta <title>, etc.
Aunque el código del script se puede incluir en cualquier parte de la página, se recomienda
incluirlo en la cabecera del documento, es decir, dentro de la etiqueta <head>.
La instrucción alert() es una de las utilidades que incluye JavaScript y permite mostrar un
mensaje en la pantalla del usuario. Si se visualiza la página web de este primer script en
cualquier navegador, automáticamente se mostrará una ventana con el mensaje "Hola Mundo!".
E: I
Capítulo 3. Programación básica
Antes de comenzar a desarrollar programas y utilidades con JavaScript, es necesario conocer los
elementos básicos con los que se construyen las aplicaciones. Si ya sabes programar en algún
lenguaje de programación, este capítulo te servirá para conocer la sintaxis específica de
JavaScript.
Si nunca has programado, este capítulo explica en detalle y comenzando desde cero los
conocimientos básicos necesarios para poder entender posteriormente la programación
avanzada, que es la que se utiliza para crear las aplicaciones reales.
3.1. Variables
Las variables en los lenguajes de programación siguen una lógica similar a las variables
utilizadas en otros ámbitos como las matemáticas. Una variable es un elemento que se emplea
para almacenar y hacer referencia a otro valor. Gracias a las variables es posible crear
"programas genéricos", es decir, programas que funcionan siempre igual independientemente de
los valores concretos utilizados.
De la misma forma que si en Matemáticas no existieran las variables no se podrían definir las
ecuaciones y fórmulas, en programación no se podrían hacer programas realmente útiles sin las
variables.
Si no existieran variables, un programa que suma dos números podría escribirse como:
resultado = 3 + 1
El programa anterior es tan poco útil que sólo sirve para el caso en el que el primer número de la
suma sea el 3 y el segundo número sea el 1. En cualquier otro caso, el programa obtiene un
resultado incorrecto.
Sin embargo, el programa se puede rehacer de la siguiente manera utilizando variables para
almacenar y referirse a cada número:
numero_1 = 3
numero_2 = 1
Los elementos numero_1 y numero_2 son variables que almacenan los valores que utiliza el
programa. El resultado se calcula siempre en función del valor almacenado por las variables, por
lo que este programa funciona correctamente para cualquier par de números indicado. Si se
modifica el valor de las variables numero_1 y numero_2, el programa sigue funcionando
correctamente.
Las variables en JavaScript se crean mediante la palabra reservada var. De esta forma, el ejemplo
anterior se puede realizar en JavaScript de la siguiente manera:
var numero_1 = 3;
var numero_2 = 1;
var resultado = numero_1 + numero_2;
La palabra reservada var solamente se debe indicar al definir por primera vez la variable, lo que
se denomina declarar una variable. Cuando se utilizan las variables en el resto de instrucciones
del script, solamente es necesario indicar su nombre. En otras palabras, en el ejemplo anterior
sería un error indicar lo siguiente:
var numero_1 = 3;
var numero_2 = 1;
Si cuando se declara una variable se le asigna también un valor, se dice que la variable ha sido
inicializada. En JavaScript no es obligatorio inicializar las variables, ya que se pueden declarar
por una parte y asignarles un valor posteriormente. Por tanto, el ejemplo anterior se puede
rehacer de la siguiente manera:
var numero_1;
var numero_2;
numero_1 = 3;
numero_2 = 1;
var resultado = numero_1 + numero_2;
Una de las características más sorprendentes de JavaSript para los programadores habituados a
otros lenguajes de programación es que tampoco es necesario declarar las variables. En otras
palabras, se pueden utilizar variables que no se han definido anteriormente mediante la palabra
reservada var. El ejemplo anterior también es correcto en JavaScript de la siguiente forma:
var numero_1 = 3;
var numero_2 = 1;
La variable resultado no está declarada, por lo que JavaScript crea una variable global (más
adelante se verán las diferencias entre variables locales y globales) y le asigna el valor
correspondiente. De la misma forma, también sería correcto el siguiente código:
numero_1 = 3;
numero_2 = 1;
En cualquier caso, se recomienda declarar todas las variables que se vayan a utilizar.
El nombre de una variable también se conoce como identificador y debe cumplir las siguientes
normas:
Sólo puede estar formado por letras, números y los símbolos $ (dólar) y _(guión bajo).
El primer carácter no puede ser un número. Portanto, las siguientes variables
tienen nombres correctos:
var $numero1;
var _$letra;
var $$$otroNumero;
var $_a__$4;
3.2.1. Numéricas
Se utilizan para almacenar valores numéricos enteros (llamados integer en inglés) o decimales
(llamados float en inglés). En este caso, el valor se asigna indicando directamente el número
entero o decimal. Los números decimales utilizan el carácter . (punto) en vez de , (coma) para
separar la parte entera y la parte decimal:
var iva = 16+2; // variable tipo entero
Se utilizan para almacenar caracteres, palabras y/o frases de texto. Para asignar el valor a la
variable, se encierra el valor entre comillas dobles o simples, para delimitar su comienzo y su
final:
var mensaje = "Bienvenido a nuestro sitio web";
var nombreProducto = 'Producto ABC';
var letraSeleccionada = 'c';
En ocasiones, el texto que se almacena en las variables no es tan sencillo. Si por ejemplo el
propio texto contiene comillas simples o dobles, la estrategia que se sigue es la de encerrar el
texto con las comillas (simples o dobles) que no utilice el texto:
/* El contenido de texto1 tiene comillas simples, por lo que se encierra con comillas
dobles */
var texto1 = "Una frase con 'comillas simples' dentro";
/* El contenido de texto2 tiene comillas dobles, por lo que se encierra con comillas
simples */
var texto2 = 'Una frase con "comillas dobles" dentro';
No obstante, a veces las cadenas de texto contienen tanto comillas simples como dobles. Además,
existen otros caracteres que son difíciles de incluir en una variable de texto (tabulador, ENTER,
etc.) Para resolver estos problemas, JavaScript define un mecanismo para incluir de forma
sencilla caracteres especiales y problemáticos dentro de una cadena de texto.
El mecanismo consiste en sustituir el carácter problemático por una combinación simple de
caracteres.
A continuación se muestra la tabla de conversión que se debe utilizar:
De esta forma, el ejemplo anterior que contenía comillas simples y dobles dentro del texto se
puede rehacer de la siguiente forma:
E: II
3.2.3. Arrays
En ocasiones, a los arrays se les llama vectores, matrices e incluso arreglos. No obstante, el
término array es el más utilizado y es una palabra comúnmente aceptada en el entorno de la
programación.
Un array es una colección de variables, que pueden ser todas del mismo tipo o cada una de un
tipo diferente. Su utilidad se comprende mejor con un ejemplo sencillo: si una aplicación
necesita manejar los días de la semana, se podrían crear siete variables de tipo texto:
var dia1 = "Lunes";
var dia2 = "Martes";
...
var dia7 = "Domingo";
En este tipo de casos, se pueden agrupar todas las variables relacionadas en una colección de
variables o array. El ejemplo anterior se puede rehacer de la siguiente forma:
var dias = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado",
"Domingo"];
Ahora, una única variable llamada dias almacena todos los valores relacionados entre sí, en este
caso los días de la semana. Para definir un array, se utilizan los caracteres [ y ] para delimitar
su comienzo y su final y se utiliza el carácter ,(coma) para separar sus elementos:
Una vez definido un array, es muy sencillo acceder a cada uno de sus elementos. Cada elemento
se accede indicando su posición dentro del array. La única complicación, que es responsable de
muchos errores cuando se empieza a programar, es que las posiciones de los elementos
empiezan a contarse en el 0 y no en el 1:
var diaSeleccionado = dias[0]; // diaSeleccionado = "Lunes"
En el ejemplo anterior, la primera instrucción quiere obtener el primer elemento del array. Para
ello, se indica el nombre del array y entre corchetes la posición del elemento dentro del array.
Como se ha comentado, las posiciones se empiezan a contar en el 0, por lo que el primer
elemento ocupa la posición 0 y se accede a el mediante dias[0].
El valor dias[5] hace referencia al elemento que ocupa la sexta posición dentro del array dias.
Como las posiciones empiezan a contarse en 0, la posición 5 hace referencia al sexto elemento,
en este caso, el valor Sábado.
E:III
3.2.4. Booleanos
Las variables de tipo boolean o booleano también se conocen con el nombre de variables de tipo
lógico. Aunque para entender realmente su utilidad se debe estudiar la programación avanzada
con JavaScript del siguiente capítulo, su funcionamiento básico es muy sencillo.
Una variable de tipo boolean almacena un tipo especial de valor que solamente puede tomar dos
valores: true (verdadero) o false (falso). No se puede utilizar para almacenar números y
tampoco permite guardar cadenas de texto.
Los únicos valores que pueden almacenar estas variables son true y false, por lo que no
pueden utilizarse los valores verdadero y falso. A continuación se muestra un par de variables
de tipo booleano:
var clienteRegistrado = false;
var ivaIncluido = true;
3.3. Operadores
Las variables por sí solas son de poca utilidad. Hasta ahora, sólo se ha visto cómo crear variables
de diferentes tipos y cómo mostrar su valor mediante la función alert(). Para hacer programas
realmente útiles, son necesarias otro tipo de herramientas.
Los operadores permiten manipular el valor de las variables, realizar operaciones matemáticas
con sus valores y comparar diferentes variables. De esta forma, los operadores permiten a los
programas realizar cálculos complejos y tomar decisiones lógicas en función de comparaciones y
otros tipos de condiciones.
3.3.1. Asignación
El operador de asignación es el más utilizado y el más sencillo. Este operador se utiliza para
guardar un valor específico en una variable. El símbolo utilizado es = (no confundir con el
operador ==que se verá más adelante):
var numero1 = 3;
A la izquierda del operador, siempre debe indicarse el nombre de una variable. A la derecha del
operador, se pueden indicar variables, valores, condiciones lógicas, etc:
var numero1 = 3;
var numero2 = 4;
Ejemplo:
var numero = 5;
numero = numero + 1;
alert(numero); // numero = 6
--numero;
alert(numero); // numero = 4
alert(numero); // numero = 4
Los operadores de incremento y decremento no solamente se pueden indicar como prefijo del
nombre de la variable, sino que también es posible utilizarlos como sufijo. En este caso, su
comportamiento es similar pero diferente. En el siguiente ejemplo:
var numero = 5;
numero++;
alert(numero); // numero = 6
var numero1 = 5;
var numero2 = 2;
numero3 = ++numero1 + numero2;
// numero3 = 8, numero1 = 6
Los operadores lógicos son imprescindibles para realizar aplicaciones complejas, ya que se
utilizan para tomar decisiones sobre las instrucciones que debería ejecutar el programa en
función de ciertas condiciones.
El resultado de cualquier operación que utilice operadores lógicos siempre es un valor lógico o
booleano.
3.3.3.1. Negación
Uno de los operadores lógicos más utilizados es el de la negación. Se utiliza para obtener el valor
contrario al valor de la variable:
var visible = true; alert(!visible); // Muestra "false" y no "true"
Si la variable original es de tipo booleano, es muy sencillo obtener su negación. Sin embargo,
¿qué sucede cuando la variable es un número o una cadena de texto? Para obtener la negación en
este tipo de variables, se realiza en primer lugar su conversión a un valor booleano:
▪ Si la variable contiene un número, se transforma en false si vale 0 y en true para cualquier
otro número (positivo o negativo, decimal o entero).
▪ Si la variable contiene una cadena de texto, se transforma en false si la cadena es vacía ("") y
en true en cualquier otro caso.
var cantidad = 0;
vacio = !cantidad; // vacio = true
cantidad = 2;
vacio = !cantidad; // vacio = false
var mensaje = "";
mensajeVacio = !mensaje; // mensajeVacio = true
mensaje = "Bienvenido";
mensajeVacio = !mensaje; // mensajeVacio = false
3.3.3.2. AND
La operación lógica AND obtiene su resultado combinando dos valores booleanos. El operador se
indica mediante el símbolo && y su resultado solamente es true si los dos operandos son true:
3.3.3.3. OR
La operación lógica OR también combina dos valores booleanos. El operador se indica mediante
el símbolo || y su resultado es true si alguno de los dos operandos es true:
valor1 = false;
valor2 = false;
resultado = valor1 || valor2; // resultado = false
3.3.4. Matemáticos
var numero2 = 5;
Además de los cuatro operadores básicos, JavaScript define otro operador matemático que no es
sencillo de entender cuando se estudia por primera vez, pero que es muy útil en algunas
ocasiones.
Se trata del operador "módulo", que calcula el resto de la división entera de dos números. Si se
divide por ejemplo 10 y 5, la división es exacta y da un resultado de 2. El resto de esa división es
0, por lo que módulo de 10 y 5 es igual a 0.
El operador módulo en JavaScript se indica mediante el símbolo %, que no debe confundirse con
el cálculo del porcentaje:
var numero1 = 10;
var numero2 = 5;
numero1 = 9;
numero2 = 5;
Los operadores matemáticos también se pueden combinar con el operador de asignación para
abreviar su notación:
var numero1 = 5;
3.3.5. Relacionales
Los operadores relacionales definidos por JavaScript son idénticos a los que definen las
matemáticas: mayor que (>), menor que (<), mayor o igual (>=), menor o igual (<=), igual que
(==) y distinto de (!=).
Los operadores que relacionan variables son imprescindibles para realizar cualquier aplicación
compleja, como se verá en el siguiente capítulo de programación avanzada. El resultado de todos
estos operadores siempre es un valor booleano:
var numero1 = 3;
var numero2 = 5;
numero1 = 5;
numero2 = 5;
Se debe tener especial cuidado con el operador de igualdad (==), ya que es el origen de la
mayoría de errores de programación, incluso para los usuarios que ya tienen cierta experiencia
desarrollando scripts. El operador == se utiliza para comparar el valor de dos variables, por lo
que es muy diferente del operador =, que se utiliza para asignar un valor a una variable:
// El operador "=" asigna valores
var numero1 = 5;
Los operadores relacionales también se pueden utilizar con variables de tipo cadena de texto:
var texto1 = "hola";
var texto2 = "hola";
var texto3 = "adios";
resultado = texto1 == texto3; // resultado = false
resultado = texto1 != texto2; // resultado = false
resultado = texto3 >= texto2; // resultado = false
Cuando se utilizan cadenas de texto, los operadores "mayor que" (>) y "menor que" (<) siguen un
razonamiento no intuitivo: se compara letra a letra comenzando desde la izquierda hasta que se
encuentre una diferencia entre las dos cadenas de texto. Para determinar si una letra es mayor o
menor que otra, las mayúsculas se consideran menores que las minúsculas y las primeras letras
del alfabeto son menores que las últimas (a es menor que b, b es menor que c, A es menor que
a, etc.)
E:IV
Sin embargo, no se pueden realizar programas que muestren un mensaje si el valor de una
variable es igual a un valor determinado y no muestren el mensaje en el resto de casos. Tampoco
se puede repetir de forma eficiente una misma instrucción, como por ejemplo sumar un
determinado valor a todos los elementos de un array.
Para realizar este tipo de programas son necesarias las estructuras de control de flujo, que son
instrucciones del tipo "si se cumple esta condición, hazlo; si no se cumple, haz esto otro". También
existen instrucciones del tipo "repite esto mientras se cumpla esta condición".
Si se utilizan estructuras de control de flujo, los programas dejan de ser una sucesión lineal de
instrucciones para convertirse en programas inteligentes que pueden tomar decisiones en
función del valor de las variables.
3.4.1. Estructura if
Si la condición se cumple (es decir, si su valor es true) se ejecutan todas las instrucciones que se
encuentran dentro de {...}. Si la condición no se cumple (es decir, si su valor es false) no se
ejecuta ninguna instrucción contenida en {...} y el programa continúa ejecutando el resto de
instrucciones del script.
Ejemplo:
var mostrarMensaje = true;
La comparación del ejemplo anterior suele ser el origen de muchos errores de programación, al
confundir los operadores == y =. Las comparaciones siempre se realizan con el operador ==,
ya que el operador =solamente asigna valores:
La condición que controla el if() puede combinar los diferentes operadores lógicos y
relacionales mostrados anteriormente:
var mostrado = false;
if(!mostrado) {
alert("Es la primera vez que se muestra el mensaje"); }
Los operadores AND y OR permiten encadenar varias condiciones simples para construir
condiciones complejas:
var mostrado = false;
La condición anterior está formada por una operación AND sobre dos variables. A su vez, a la
primera variable se le aplica el operador de negación antes de realizar la operación AND. De esta
forma, como el valor de mostrado es false, el valor !mostrado sería true. Como la variable
usuarioPermiteMensajes vale true, el resultado de !mostrado && usuarioPermiteMensajes
sería igual a true && true, por lo que el resultado final de la condición del if() sería true y
por tanto, se ejecutan las instrucciones que se encuentran dentro del bloque del if().
E: V
En ocasiones, las decisiones que se deben realizar no son del tipo "si se cumple la condición,
hazlo; si no se cumple, no hagas nada". Normalmente las condiciones suelen ser del tipo "si se
cumple esta condición, hazlo; si no se cumple, haz esto otro".
Para este segundo tipo de decisiones, existe una variante de la estructura if llamada if...else.
Su definición formal es la siguiente:
if(condicion) {
...
}
else {
...
Si la condición se cumple (es decir, si su valor es true) se ejecutan todas las instrucciones que se
encuentran dentro del if(). Si la condición no se cumple (es decir, si su valor es false) se
ejecutan todas las instrucciones contenidas en else { }. Ejemplo:
Si el valor de la variable edad es mayor o igual que el valor numérico 18, la condición del if()
se cumple y por tanto, se ejecutan sus instrucciones y se muestra el mensaje "Eres mayor de
edad". Sin embargo, cuando el valor de la variable edad no es igual o mayor que 18, la condición
del if() no se cumple, por lo que automáticamente se ejecutan todas las instrucciones del
bloque else { }. En este caso, se mostraría el mensaje "Todavía eres menor de edad".
if(nombre == "") {
alert("Aún no nos has dicho tu nombre");
}
else {
alert("Hemos guardado tu nombre");
La condición del if() anterior se construye mediante el operador ==, que es el que se emplea
para comparar dos valores (no confundir con el operador = que se utiliza para asignar valores).
En el ejemplo anterior, si la cadena de texto almacenada en la variable nombre es vacía (es decir,
es igual a "") se muestra el mensaje definido en el if(). En otro caso, se muestra el mensaje
definido en el bloque else { }.
E: VI
Las estructuras if y if...else no son muy eficientes cuando se desea ejecutar de forma
repetitiva una instrucción. Por ejemplo, si se quiere mostrar un mensaje cinco veces, se podría
pensar en utilizar el siguiente if:
var veces = 0;
Se comprueba si la variable veces es menor que 4. Si se cumple, se entra dentro del if(), se
muestra el mensaje y se incrementa el valor de la variable veces. Así se debería seguir
ejecutando hasta mostrar el mensaje las cinco veces deseadas.
Sin embargo, el funcionamiento real del script anterior es muy diferente al deseado, ya que
solamente se muestra una vez el mensaje por pantalla. La razón es que la ejecución de la
estructura if() no se repite y la comprobación de la condición sólo se realiza una vez,
independientemente de que dentro del if() se modifique el valor de la variable utilizada en la
condición.
La estructura for permite realizar este tipo de repeticiones (también llamadas bucles) de una
forma muy sencilla. No obstante, su definición formal no es tan sencilla como la de if():
for(inicializacion; condicion; actualizacion) { ...}
Por tanto, en primer lugar se crea la variable i y se le asigna el valor de 0. Esta zona de
inicialización solamente se tiene en consideración justo antes de comenzar a ejecutar el bucle.
Las siguientes repeticiones no tienen en cuenta esta parte de inicialización.
Los bucles se siguen ejecutando mientras se cumplan las condiciones y se dejan de ejecutar justo
después de comprobar que la condición no se cumple. En este caso, mientras la variable i valga
menos de 5 el bucle se ejecuta indefinidamente.
Como la variable i se ha inicializado a un valor de 0 y la condición para salir del bucle es que i
sea menor que 5, si no se modifica el valor de i de alguna forma, el bucle se repetiría
indefinidamente.
Por ese motivo, es imprescindible indicar la zona de actualización, en la que se modifica el valor
de las variables que controlan el bucle:
i++
En este caso, el valor de la variable ise incrementa en una unidad después de cada repetición. La
zona de actualización se ejecuta después de la ejecución de las instrucciones que incluye el for.
Normalmente, la variable que controla los bucles for se llama i, ya que recuerda a la palabra
índice y su nombre tan corto ahorra mucho tiempo y espacio.
El ejemplo anterior que mostraba los días de la semana contenidos en un array se puede rehacer
de forma más sencilla utilizando la estructura for:
var dias = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"];
E: VII
Una estructura de control derivada de fores la estructura for...in. Su definición exacta implica
el uso de objetos, que es un elemento de programación avanzada que no se va a estudiar. Por
tanto, solamente se va a presentar la estructura for...in adaptada a su uso en arrays. Su
definición formal adaptada a los arrays es:
for(indice in array) { ...
}
Si se quieren recorrer todos los elementos que forman un array, la estructura for...in es la
forma más eficiente de hacerlo, como se muestra en el siguiente ejemplo:
var dias = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"];
for(i in dias) {
alert(dias[i]); }
La variable que se indica como indice es la que se puede utilizar dentro del bucle for...in para
acceder a los elementos del array. De esta forma, en la primera repetición del bucle la variable i
vale 0y en la última vale 6.
Esta estructura de control es la más adecuada para recorrer arrays (y objetos), ya que evita
tener que indicar la inicialización y las condiciones del bucle for simple y funciona
correctamente cualquiera que sea la longitud del array. De hecho, sigue funcionando igual
aunque varíe el número de elementos del array.
A continuación se muestran algunas de las funciones más útiles para el manejo de cadenas de
texto: length, calcula la longitud de una cadena de texto (el número de caracteres que la forman)
var variable2 = 3;
Cuando se unen varias cadenas de texto es habitual olvidar añadir un espacio de separación
entre las palabras:
var mensaje1 = "Hola";
Los espacios en blanco se pueden añadir al final o al principio de las cadenas y también se
pueden indicar forma explícita:
var mensaje1 = "Hola";
substring(inicio, final), extrae una porción de una cadena de texto. El segundo parámetro
es opcional. Si sólo se indica el parámetro inicio, la función devuelve la parte de la cadena
original correspondiente desde esa posición hasta el final:
var mensaje = "Hola Mundo";
Si se indica un final más pequeño que el inicio, JavaScript los considera de forma inversa, ya
que automáticamente asigna el valor más pequeño al inicio y el más grande al final:
var mensaje = "Hola Mundo";
Con esta función se pueden extraer fácilmente las letras que forman una palabra:
var palabra = "Hola";
var letras = palabra.split(""); // letras = ["H", "o", "l", "a"]
join(separador), es la función contraria a split(). Une todos los elementos de un array para
formar una cadena de texto. Para unir los elementos se utiliza el carácter separador indicado
var array = ["hola", "mundo"];
pop(), elimina el último elemento del array y lo devuelve. El array original se modifica y su
longitud disminuye en 1 elemento.
var array = [1, 2, 3];
var ultimo = array.pop();
// ahora array = [1, 2], ultimo = 3
push(), añade un elemento al final del array. El array original se modifica y aumenta su longitud
en 1 elemento. (También es posible añadir más de un elemento a la vez)
var array = [1, 2, 3];
array.push(4);
// ahora array = [1, 2, 3, 4]
shift(), elimina el primer elemento del array y lo devuelve. El array original se ve modificado y
su longitud disminuida en 1 elemento.
var array = [1, 2, 3];
var primero = array.shift();
// ahora array = [2, 3], primero = 1
unshift(), añade un elemento al principio del array. El array original se modifica y aumenta su
longitud en 1 elemento. (También es posible añadir más de un elemento a la vez)
var array = [1, 2, 3];
array.unshift(0);
// ahora array = [0, 1, 2, 3]
NaN, (del inglés, "Not a Number") JavaScript emplea el valor NaN para indicar un valor numérico
no definido (por ejemplo, la división 0/0).
var numero1 = 0;
var numero2 = 0;
var numero1 = 0;
var numero2 = 0;
if(isNaN(numero1/numero2)) {
alert("La división no está definida para los números indicados");
}
else {
alert("La división es igual a => " + numero1/numero2);
Infinity, hace referencia a un valor numérico infinito y positivo (también existe el valor –
Infinity para los infinitos negativos)
var numero2 = 0;
toFixed(digitos), devuelve el número original con tantos decimales como los indicados por el
parámetro digitos y realiza los redondeos necesarios. Se trata de una función muy útil por
ejemplo para mostrar precios.
var numero1 = 4564.34567;
numero1.toFixed(2); // 4564.35
numero1.toFixed(6); // 4564.345670
numero1.toFixed(); // 4564