Unidad 2. Manejo de La Sintaxis Del Lenguaje
Unidad 2. Manejo de La Sintaxis Del Lenguaje
Unidad 2. Manejo de La Sintaxis Del Lenguaje
Unidad 2
Manejo de la sintaxis del lenguaje
Resultado de aprendizaje
Introducción
Contenido
1. Sintaxis de JavaScript ............................................................................................................. 3
2. Espacios en blanco ................................................................................................................ 3
3. Comentarios al código ........................................................................................................... 3
4. Variables. Declaración. Inicialización. Ámbito ....................................................................... 4
5. Tipos de variables .................................................................................................................. 6
5.1. Tipos primitivos ............................................................................................................. 6
5.1.1. Variables de tipo undefined ............................................................................... 6
5.1.2. Variables de tipo null .......................................................................................... 6
5.1.3. Variables de tipo boolean.................................................................................... 6
5.1.4. Variables de tipo número ...................................................................................... 7
5.1.5. Variables de tipo cadena de texto ......................................................................... 7
5.2. Tipos de referencia o clases .......................................................................................... 8
6. Conversión de tipos de datos .............................................................................................. 10
7. Operadores .......................................................................................................................... 11
7.1. Operador de asignación .............................................................................................. 11
7.2. Operadores aritméticos............................................................................................... 12
7.3. Operadores de incremento y decremento .................................................................. 12
7.4. Operadores lógicos ...................................................................................................... 14
7.4.1. Operador de negación ......................................................................................... 14
7.4.2. Operador AND ..................................................................................................... 14
7.4.3. Operador OR........................................................................................................ 15
7.5. Operadores relacionales.............................................................................................. 15
7.6. Operador typeof ....................................................................................................... 16
7.7. Operador instanceof .............................................................................................. 16
8. Estructuras de control de flujo ............................................................................................ 17
8.1. Estructura if ............................................................................................................... 17
8.2. Estructura if-else .................................................................................................... 18
8.3. Estructura switch ...................................................................................................... 19
8.4. Estructura for ............................................................................................................. 21
8.5. Estructura while ........................................................................................................ 22
8.6. Estructura do-while .................................................................................................. 23
9. Estructura try..................................................................................................................... 23
10. Cláusula finally ........................................................................................................... 24
2
1. Sintaxis de JavaScript
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. Las normas básicas que definen la sintaxis de JavaScript son las
siguientes:
• No se tienen en cuenta los espacios en blanco y las nuevas líneas. Al igual que sucede
con XHTML, el intérprete de JavaScript ignora cualquier espacio en blanco sobrante, por
lo que el código se puede ordenar de forma adecuada para entenderlo mejor (tabulando
las líneas, añadiendo espacios, creando nuevas líneas, etc.)
• Se distinguen las mayúsculas y minúsculas.
• No se define el tipo de las variables. Al crear una variable no es necesario indicar el tipo
de dato que almacenará. De esta forma, una misma variable puede almacenar diferentes
tipos de datos durante la ejecución del script.
• No es necesario terminar cada sentencia con el carácter de punto y coma (;). En la
mayoría de lenguajes de programación es obligatorio terminar cada sentencia con el
carácter de punto y coma. JavaScript no obliga a hacerlo, pero es conveniente seguir la
tradición de terminar cada sentencia con este carácter.
• Se pueden incluir comentarios. Los comentarios se utilizan para añadir información en
el código fuente del programa. Aunque el contenido de los comentarios no se visualiza
por pantalla, sí que se envía al navegador del usuario junto con el resto del script, por lo
que es necesario extremar las precauciones sobre la información incluida en los
comentarios.
2. Espacios en blanco
En JavaScript no se tienen en cuenta los espacios en blanco y las nuevas líneas. Al igual que
sucede con XHTML, el intérprete de JavaScript ignora cualquier espacio en blanco sobrante, por
lo que el código se puede ordenar de forma adecuada para entenderlo mejor tabulando las
líneas, añadiendo espacios, creando nuevas líneas, etc. Sin embargo, en ocasiones estos espacios
en blanco son totalmente necesarios, por ejemplo, para reparar nombres de variables o palabras
reservadas.
3. Comentarios al código
A la hora de programar en cualquier lenguaje de programación es muy importante que comentes
tu código. Los comentarios son sentencias que el intérprete de JavaScript ignora. Sin embargo,
estas sentencias permiten a los desarrolladores dejar notas sobre cómo funcionan las cosas en
sus scripts.
Los comentarios ocupan espacio dentro de tu código de JavaScript, por lo que cuando alguien se
descargue vuestro código necesitará más o menos tiempo, dependiendo del tamaño de vuestro
fichero. Aunque esto pueda ser un problema, es muy recomendable que documentes tu código
lo máximo posible.
3
Página
Para comentarios que ocupen varias líneas podemos emplear /* para comenzar la sección de
comentarios y */ para cerrar la sección de comentarios.
/* Los comentarios de varias líneas son muy útiles
cuando se necesita incluir bastante información
en los comentarios */
console.log("mensaje de prueba");
El siguiente programa suma dos números utilizando variables para almacenar y referirse a cada
número:
numero_1 = 3
numero_2 = 1
resultado = numero_1 + numero_2
Los elementos numero_1 y numero_2 son variables que almacenan los valores que utiliza el
programa. La variable resultado se calcula siempre en función del valor almacenado por las
variables anteriores, 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;
4
var numero_2 = 1;
Página
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, es decir,
se pueden utilizar variables que no se han definido anteriormente mediante la palabra reservada
var. El ejemplo anterior también puede realizarse en JavaScript de la siguiente forma:
var numero_1 = 3;
var numero_2 = 1;
resultado = numero_1 + numero_2;
La variable resultado no está declarada, por lo que JavaScript crea una variable global 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;
resultado = numero_1 + numero_2;
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.
Recuerda
A continuación, se indica el listado de palabras reservadas en JavaScript y que no podemos utilizar para
nombrar nuestras variables, parámetros, funciones, operadores o etiquetas:
• abstract • long
• boolean break byte • native new null
• case catch char class const • package private protected public
continue • return
• debugger default delete do • short static super switch
double synchronized
• else enum export extends • this throw throws transient true try
• false final finally float for typeof
function • var volatile void
• goto • while with
• if
5
implements import in
Página
var $numero1;
var _$letra;
var $$$otroNumero;
var $_a__$4;
5. Tipos de variables
JavaScript divide los distintos tipos de variables en dos grupos: tipos primitivos y tipos de
referencia o clases.
Si el número es decimal se utiliza el carácter punto (.) en vez de coma (,) para separar la parte
entera y la parte decimal:
var variable2 = 234.65;
Además del sistema numérico decimal, también se pueden indicar valores en el sistema octal (si
se incluye un cero delante del número) y en sistema hexadecimal (si se incluye un cero y una x
delante del número):
JavaScript también define tres valores especiales muy útiles cuando se trabaja con números. En
primer lugar, se definen los valores Infinity y –Infinity para representar números
demasiado grandes (positivos y negativos) y con los que JavaScript no puede trabajar.
var variable1 = 3, variable2 = 0;
console.log(variable1/variable2); // Muestra "Infinity"
El otro valor especial definido por JavaScript es NaN, que es el acrónimo de Not a Number. De
esta forma, si se realizan operaciones matemáticas con variables no numéricas el resultado será
de tipo NaN. Para manejar los valores NaN se utiliza la función relacionada isNaN(), que
devuelve true si el parámetro que se le pasa no es un número:
var variable1 = 3;
var variable2 = "hola";
isNaN(variable1); // false
isNaN(variable2); // true
isNaN(variable1 + variable2); // true
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 muestran las conversiones que se deben utilizar:
De esta forma, el ejemplo anterior que contenía comillas simples y dobles dentro del texto se
puede rehacer de la siguiente forma:
var texto1 = 'Una frase con \'comillas simples\' dentro';
var texto2 = "Una frase con \"comillas dobles\" dentro";
JavaScript define una clase para cada uno de los tipos de datos primitivos. De esta forma, existen
objetos de tipo Boolean para las variables booleanas, Number para las variables numéricas y
8
String para las variables de cadenas de texto. Las clases Boolean, Number y String
Página
La propiedad length sólo está disponible en la clase String, por lo que en principio no debería
poder utilizarse en un dato primitivo de tipo cadena de texto. Sin embargo, JavaScript convierte
el tipo de dato primitivo al tipo de referencia String, obtiene el valor de la propiedad length
y devuelve el resultado. Este proceso se realiza de forma automática y transparente para el
programador.
En realidad, con una variable de tipo String no se pueden hacer muchas más cosas que con su
correspondiente tipo de dato primitivo. Por este motivo, no existen muchas diferencias prácticas
entre utilizar el tipo de referencia o el tipo primitivo, salvo en el caso del resultado del operador
typeof y en el caso de la función eval(), como se verá más adelante.
La principal diferencia entre los tipos de datos es que los datos primitivos se manipulan por valor
y los tipos de referencia se manipulan por referencia. Los conceptos por valor y por referencia
son iguales que en el resto de lenguajes de programación, aunque existen diferencias
importantes.
Cuando un dato se manipula por valor, lo único que importa es el valor en sí. Cuando se asigna
una variable por valor a otra variable, se copia directamente el valor de la primera variable en la
segunda. Cualquier modificación que se realice en la segunda variable es independiente de la
primera variable. De la misma forma, cuando se pasa una variable por valor a una función sólo
se pasa una copia del valor. Así, cualquier modificación que realice la función sobre el valor
pasado no se refleja en el valor de la variable original.
var variable1 = 3;
var variable2 = variable1;
variable2 = variable2 + 5;
// Ahora variable2 = 8 y variable1 sigue valiendo 3
La variable2 se asigna por valor en la variable1. Aunque las dos variables almacenan en
ese momento el mismo valor, son independientes y cualquier cambio en una de ellas no afecta
a la otra. El motivo es que los tipos de datos primitivos siempre se asignan y se pasan por valor.
En el ejemplo anterior, se utiliza un tipo de dato de referencia que se verá más adelante, que se
9
llama Date y que se utiliza para manejar fechas. Se crea una variable llamada variable1 y se
Página
inicializa la fecha a 25 de diciembre de 2009. Al constructor del objeto Date se le pasa el año, el
Cuando intentamos sumar dos números, si uno de esos dos números está en formato de cadena
de texto, JavaScript lo que hará es intentar convertir el otro número a una cadena y los
concatenará de la siguiente manera:
Esto puede resultar ilógico, pero sí que tiene su lógica. La expresión se evalúa de izquierda a
derecha. La primera operación funciona correctamente devolviendo el valor de 9, pero al
intentar sumarle una cadena de texto "6" JavaScript convierte el número anterior a una cadena
de texto y lo concatenará al comienzo del "6". Para convertir cadenas a números dispones de
las funciones parseInt() y parseFloat(), que convierten las variables que se le indican en
un número entero o en un número decimal, respectivamente. Estas funciones devuelven el valor
NaN si el carácter que se les pasa no es un número. Si el primer carácter es un número, se
continúa con los siguientes caracteres mientras estos sean números.
Si lo que deseas es realizar la conversión de números a cadenas es mucho más sencillo, ya que
simplemente tienes que concatenar una cadena vacía al principio y, de esta forma, el número
será convertido a su cadena equivalente:
7. Operadores
Las variables por sí solas son de poca utilidad. Hasta ahora, sólo se ha visto cómo crear variables
de diferentes tipos. 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.
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;
11
var numero2 = 4;
Página
Además de los cuatro operadores básicos, JavaScript define otro operador aritmé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, el cual calcula el resto de la división entera de dos
números. Por ejemplo, si se divide 10/5 la división es exacta y da un resultado de 2. El resto de
esa división es 0, por lo que el módulo es igual a 0. Sin embargo, si se divide 9/5 la división no es
exacta, el resultado es 1 y el resto 4, por lo que el módulo es igual a 4. El operador módulo en
JavaScript se indica mediante el símbolo %, que no debe confundirse con el cálculo del
porcentaje:
numero1 = 9;
numero2 = 5;
resultado = numero1 % numero2; // resultado = 4
Los operadores aritméticos también se pueden combinar con el operador de asignación para
abreviar su notación:
var numero1 = 5;
numero1 += 3; // numero1 = numero1 + 3 = 8
numero1 -= 1; // numero1 = numero1 - 1 = 4
numero1 *= 2; // numero1 = numero1 * 2 = 10
numero1 /= 5; // numero1 = numero1 / 5 = 1
numero1 %= 4; // numero1 = numero1 % 4 = 1
var numero = 5;
Página
++numero;
console.log(numero); // numero = 6
var numero = 5;
numero = numero + 1;
console.log(numero); // numero = 6
var numero = 5;
--numero;
console.log(numero); // numero = 4
var numero = 5;
numero = numero - 1;
console.log(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 muy diferente.
var numero = 5;
numero++;
console.log(numero); // numero = 6
var numero1 = 5;
var numero2 = 2;
numero3 = ++numero1 + numero2;
// numero3 = 8, numero1 = 6
variable !variable
true false
false true
Tabla 2. Operador de negación
Si la variable original es de tipo booleano es muy sencillo obtener su negación. Sin embargo, para
obtener la negación de un número o de una cadena de texto hay que realizar su conversión a un
valor booleano:
var cantidad = 0;
vacio = !cantidad; // vacio = true
cantidad = 2;
vacio = !cantidad; // vacio = false
mensaje = "Bienvenido";
mensajeVacio = !mensaje; // mensajeVacio = false
valor1 = true;
valor2 = true;
resultado = valor1 && valor2; // resultado = true;
7.4.3. Operador 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
var numero1 = 3;
var numero2 = 5;
resultado = numero1 > numero2; // resultado = false
resultado = numero1 < numero2; // resultado = true
numero1 = 5;
numero2 = 5;
resultado = numero1 >= numero2; // resultado = true
resultado = numero1 <= numero2; // resultado = true
resultado = numero1 == numero2; // resultado = true
resultado = numero1 != numero2; // resultado = false
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 y el
operador = se utiliza para asignar un valor a una variable:
15
Los operadores relacionales también se pueden utilizar con variables de tipo cadena de texto:
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
encuentra 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. Por ejemplo: a es menor que b, b es menor que c, A
es menor que a, etc.
El operador typeof no distingue entre las variables declaradas, pero no inicializadas y las
variables que ni siquiera han sido declaradas:
var variable1;
El operador instanceof sólo devuelve como valor true o false. De esta forma, instanceof
no devuelve directamente la clase de la que ha instanciado la variable, sino que se debe
comprobar cada posible tipo de clase individualmente.
16
Página
8.1. Estructura if
La estructura más utilizada en JavaScript y en la mayoría de lenguajes de programación es la
estructura if. Se emplea para tomar decisiones en función de una condición.
if(condicion) {
...
}
Si la condición se cumple (su valor es true) se ejecutan todas las instrucciones que se
encuentran dentro del bloque de instrucciones. Si la condición no se cumple (su valor es false)
no se ejecuta ninguna instrucción contenida en el bloque y el programa continúa ejecutando el
resto de instrucciones del script. Por ejemplo:
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 == y
el operador = solamente asigna valores.
17
La condición que controla el if puede combinar los diferentes operadores lógicos y relacionales
mostrados anteriormente:
var mostrado = false;
if(!mostrado) {
console.log("Es la primera vez que se muestra el mensaje");
}
Los operadores AND y OR permiten encadenar varias condiciones simples para construir
condiciones complejas:
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 lo tanto, se ejecutan las instrucciones que se encuentran
dentro del bloque del if.
if(condicion) {
...
} else {
...
}
Si la condición se cumple (su valor es true) se ejecutan todas las instrucciones que se
encuentran dentro del if. Si la condición no se cumple (su valor es false) se ejecutan todas las
instrucciones contenidas en else. Por ejemplo:
18
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 lo 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á el mensaje Todavía eres menor de edad.
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 igual
a "") se muestra el mensaje definido en el if. En otro caso, se muestra el mensaje definido en
el bloque else.
if(dia == 1) {
console.log("Hoy es lunes.");
} else if(dia == 2) {
console.log("Hoy es martes.");
} else if(dia == 3) {
19
console.log("Hoy es miércoles.");
} else if(dia == 4) {
Página
console.log("Hoy es jueves.");
En estos casos, la estructura switch es la más eficiente, ya que está especialmente diseñada
para manejar de forma sencilla múltiples condiciones sobre la misma variable.
switch(variable) {
case valor_1:
...
break;
case valor_2:
...
break;
...
case valor_n:
...
break;
default:
...
break;
}
Dentro del switch se definen todas las comparaciones que se quieren realizar sobre el valor de
la variable. Cada comparación se indica mediante la palabra reservada case seguida del valor
con el que se realiza la comparación. Si el valor de la variable utilizada por switch coincide con
el valor indicado por case, se ejecutan las instrucciones definidas dentro de ese case.
Normalmente, después de las instrucciones de cada case se incluye la sentencia break para
terminar la ejecución del switch, aunque no es obligatorio. Las comparaciones se realizan por
orden, desde el primer case hasta el último, por lo que es muy importante el orden en el que
se definen los case.
Si ningún valor de la variable del switch coincide con los valores definidos en los case se utiliza
el valor default para indicar las instrucciones que se ejecutan en el caso en el que ningún
case se cumpla para la variable indicada. Aunque default es opcional, las estructuras switch
suelen incluirlo para definir al menos un valor por defecto para alguna variable o para mostrar
algún mensaje por pantalla.
El ejemplo anterior realizado con if-else se puede rehacer mediante la estructura switch:
20
switch(dia) {
case 1: console.log("Hoy es lunes."); break;
Página
var veces = 0;
if(veces < 4) {
console.log("Mensaje");
veces++;
}
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.
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.
Página
var i = 0;
i < 5
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. En este caso, el valor de la variable i
se 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.
i++
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.
while(condicion) {
...
}
El funcionamiento del bucle while se resume en: mientras se cumpla la condición indicada,
repite indefinidamente las instrucciones incluidas dentro del bucle.
Evidentemente, las variables que controlan la condición deben modificarse dentro del propio
bucle, ya que, de otra forma, la condición se cumpliría siempre y el bucle while se repetiría
indefinidamente.
El siguiente ejemplo utiliza el bucle while para sumar todos los números menores o iguales que
otro número:
var resultado = 0;
var numero = 100;
var i = 0;
while(i <= numero) {
22
resultado += i;
i++;
Página
}
console.log(resultado);
Este tipo de condiciones (suma números mientras sean menores o iguales que otro número dado)
se resuelven muy fácilmente con los bucles while, aunque también se podían resolver con
bucles for.
En el ejemplo anterior, mientras se cumpla la condición, es decir, mientras que la variable i sea
menor o igual que la variable numero, se ejecutan las instrucciones del bucle.
Dentro del bucle se suma el valor de la variable i al resultado total (resultado) y se actualiza
el valor de la variable i, que es la que controla la condición del bucle. Si no se actualiza el valor
de la variable i, la ejecución del bucle continua infinitamente o hasta que el navegador permita
al usuario detener el script.
do {
...
} while(condicion);
De esta forma, como la condición se comprueba después de cada repetición, la primera vez
siempre se ejecutan las instrucciones del bucle. Es importante no olvidar que después del while
se debe añadir el carácter punto y coma (;), al contrario de lo que sucede con el bucle while.
9. Estructura try
23
La estructura try consiste en un bloque de código que se ejecuta de manera normal y captura
cualquier excepción que se pueda producir en ese bloque de sentencias.
Página
Su sintaxis es la siguiente:
En este ejemplo, llamamos a una función que no está definida y, por lo tanto, provoca una
excepción en JavaScript. Este error es capturado por la cláusula catch, la cual contiene una serie
de sentencias que indican que acciones realizar con esa excepción que acaba de producirse. Si
no se produce ninguna excepción en el bloque try, no se ejecuta el bloque dentro de catch.
abrirFichero()
try {
escribirFichero(datos);
} catch(ex) {
// Tratar la excepción
} finally {
cerrarFichero(); // siempre se cierra el recurso
}
11. Mensajes
Los mensajes son ventanas que se lanzan al usuario para hacer que éste reaccione ante una
situación o nos informe ante una duda. Realmente, todos los mensajes se obtienen a través del
objeto window, el cual veremos más adelante.
• alert(). Es el mensaje más usado. Saca un mensaje por pantalla que sólo puede ser
aceptado. Su uso es mostrar información al usuario, pero resaltándola de la página. Su
sintaxis es la siguiente:
alert(texto_del_mensaje);
• prompt(). Es una ventana que pide entrar datos al usuario. Esta función devuelve un
valor que se puede usar en el código si es asignado a una variable. Su sintaxis es la
siguiente:
prompt(texto_del_mensaje,valor_por_defecto);