Seleccionar página

Referencia de ECMAScript 5.1 – Instrucciones

Índice

Bloque {} | break | continue | debbuger | Etiquetas | do…while | for | for…in | function | if…else | return | switch | throw | try…catch…finally | var | while | with 


Bloque {}

Javascript define como instrucción al bloque formado por un par de llaves que pueden contener cero o más sentencias.

No tiene ninguna utilidad por si sólo y se utiliza siempre en combinación con otras sentencias de control.

ECMA-262

break

Termina el bucle actual o sentencia switch y salta la ejecución del programa a la siguiente instrucción.

Sintaxis

break [etiqueta];

La etiqueta opcional permite indicar que instrucción debe ser considerada para el break siendo especialmente útil en el caso de sentencias anidadas.

Ejemplo

var i, j;

loop1: 
for (i = 0; i < 3; i++) {      // La primera instrucción tiene la etiqueta "loop1"
   loop2: 
   for (j = 0; j < 3; j++) {   // La segunda instrucción tiene la etiqueta "loop2"
      if (i == 1 && j == 1) {
         break loop1;          // Termina la ejecución de la primera instrucción
      } else {
         console.log("i = " + i + ", j = " + j);
      }
   }
}
ECMA-262 para la utilización sin etiqueta y ECMA-262 Edición 3 para la utilización con etiqueta

continue

Termina el bucle actual y continua la ejecución con la siguiente iteración del bucle.

Sintaxis

continue [etiqueta];

La etiqueta opcional permite indicar que instrucción debe ser considerada para el continue siendo especialmente útil en el caso de sentencias anidadas.

Ejemplo

var i, j;

loop1: 
for (i = 0; i < 3; i++) {      // La primera instrucción tiene la etiqueta "loop1"
   loop2: 
   for (j = 0; j < 3; j++) {   // La segunda instrucción tiene la etiqueta "loop2"
      if (i == 1 && j == 1) {
         continue loop1;       // Termina la ejecución de la segunda instrucción 
                               // y ejecuta la siguiente iteración del primer bucle
      } else {
         console.log("i = " + i + ", j = " + j);
      }
   }
}
ECMA-262 para la utilización sin etiqueta y ECMA-262 Edición 3 para la utilización con etiqueta

debbuger

Llama al depurador que haya disponible. En caso de no existir un depurador esta instrucción no tiene ningún efecto.

Sintaxis

debbuger;

Ejemplo

if (i > 1 && j < 0) {
    debugger;          // Llama al depurador
}
ECMA-262 Edición 5

Etiquetas

Permite identificar una instrucción para indicar que la llamada a break o continue hace referencia a ella.

Es especialmente útil cuando se utilizan estas instrucciones dentro de estructuras anidadas y queremos indicar que las ordenes break o continue hacen referencia a estructuras superiores.

Sintaxis

etiqueta : 
    sentencia

etiqueta

Puede ser cualquier identificador válido en Javascript.

Ejemplo

var i, j;

loop1: 
for (i = 0; i < 3; i++) {      // La primera instrucción tiene la etiqueta "loop1"
   loop2: 
   for (j = 0; j < 3; j++) {   // La segunda instrucción tiene la etiqueta "loop2"
      if (i == 1 && j == 1) {
         continue loop1;       // Ejecuta la siguiente iteración del primer bucle
      } else {
         console.log("i = " + i + ", j = " + j);
      }
   }
}
ECMA-262 Edición 3

do…while

Crea un bucle que ejecuta una sentencia hasta que la condición es falsa. La condición se evalúa después de ejecutar la sentencia y por lo tanto ejecuta al menos una vez.

Sintaxis

do 
    sentencia
while (condicion)

condicion

Expresión que se evalúa en cada iteración hasta que retorna false y se sale de bucle.

Ejemplo

var i = 0;
do {
   i += 1;
   console.log(i);
} while (i < 5);
ECMA-262 Edición 3

for

Crea un bucle con tres partes, la primera que se ejecuta al inicio, la segunda que incluye la condición que mantiene la ejecución hasta que la condición es falsa y la tercera que se ejecuta tras cada iteración.

Sintaxis

for ([expresion-inicial]; [condicion]; [expresion-final])
    sentencia

[expresion-inicial]

Puede ser cualquier tipo de expresión, aunque normalmente son expresiones de definición y/o asignación de variables.

[condicion]

Esta expresión se ejecuta en cada iteración, si es verdadero (true) se ejecuta la sentencia. Si se omite se considera como verdadero.

[expresion-final]

Tras cada iteración se ejecuta esta expresión. Se suele utilizar para actualizar el contador.

Ejemplo

for (var i = 0; i < 9; i++) {
    n += i;
    console.log(n);
}
ECMA-262

for…in

Recorre las propiedades de un objeto y para cada una de ellas ejecuta la sentencia.

Sintaxis

for (variable in objeto)
    sentencia

variable

Variable que recogerá el nombre de la propiedad en cada iteración.

objeto

Objeto cuyas propiedades vamos a obtener.

Si en la sentencia se modifican, borran o añaden propiedades del objeto, el resultado no está garantizado.

Ejemplo

var resultado = "";
for (var i in objeto) {
    resultado += "objeto." + i + " = " + objeto[i] + "\n";
}
console.log(resultado);
ECMA-262

function

Declara una función.

Sintaxis

function nombre([parametro1] [, parametro2], [..., parametroN]) {
    sentencia
}

nombre

Nombre de la función.

parametro

Parámetro o argumento que recibe la función. Pueden definirse hasta 255 parámetros.

Ejemplo

function mas_impuestos(importe) {
    return importe * 1.21;
}

Las funciones pueden crearse también por medio del operador function con prácticamente la misma sintaxis y por medio del objeto Function.

ECMA-262

if…else

Ejecuta una sentencia si la condición es verdadera (true). Si la condición es falsa (false) la sentencia situada tras la cláusula else es ejecutada.

Sintaxis

if (condicion) 
    sentencia
[else
    sentencia]

condicion

Ejecuta la primera sentencia si la condición es verdadera (true). Los valores undefined, null, 0, NaN, o la cadena vacía ("") se consideran verdaderos. Un objeto Boolean, aun cuando tenga el valor false, es siempre verdadero.

Una expresión de asignación = puede ser utilizada dentro de la condición evaluándose el valor asignado, pero esta práctica es confusa, ya que habitualmente lo que utilizaremos serán expresiones de comparación ==.

Ejemplo

var a = 12;
if (a >= 10) {
    console.log('a >= 10');
} else {
    console.log('a < 10');
}
ECMA-262

return

Indica el valor de devuelve la función que la contiene y termina la ejecución de la función.

Sintaxis

return [expresion];

[expresion]

Puede ser cualquier expresión válida en Javascript. Si se omite se devuelve undefined.

Ejemplo

function mas_impuestos(importe) {
    return importe * 1.21;
}
ECMA-262 Edición 3

switch

Evalúa una expresión y ejecuta la sentencia asociada con la etiqueta que coincida.

Sintaxis

switch (expresion) {
  case etiqueta1: 
    setencia1
    [break;]
  case etiqueta2: 
    sentencia2
    [break;]
  ...
  case etiquetaN: 
    sentenciaN
    [break;]
  default: 
    setencia_por_defecto
    [break;]
}

expresion

Puede ser cualquier expresión válida en Javascript.

etiqueta:

Corresponden a cada uno de los valores que puede devolver la expresión evaluada.

default:

Si ninguna de las etiquetas coincide con la expresión evaluada, se ejecuta la sentencia que corresponde a esta etiqueta especial.

break

Si no queremos seguir evaluando la expresión una vez se ha encontrado una coincidencia debemos utilizar la instrucción break.

Ejemplo

function precio_fruta(fruta) {
    var precio;
    switch (fruta) {
        case "Naranjas": 
            precio = 10;
            break;
        case "Manzanas": 
            precio = 12;
            break;
        case "Plátano": 
            precio = 9;
            break;
        case "Cereza": 
            precio = 8;
            break;
        case "Mango": 
        case "Papaya": 
            precio = 14;
            break;
        default: 
            precio = 0;
    }
    return precio;
}
console.log("El precio de las Cerezas es " + precio_fruta("Cereza"));
ECMA-262

throw

Lanza una excepción personalizada.

Sintaxis

throw expresion;

expresion

Puede ser cualquier expresión válida en Javascript que será lanzada como excepción.

Ejemplo

function max(numero_positivo) {
    if (numero_positivo < 0) {
        throw "número negativo";
    }
    return numero_positivo > 300;
}
try {
    console.log("max: " + max(100));
    console.log("max: " + max(-100));
} catch (e) {
    console.log("ERROR: " + e);
}
ECMA-262 Edición 3

try…catch…finally

Gestiona las excepciones que puedan producirse en el código.

Sintaxis

try {
   sentencias
}
[catch (excepcion) {
   sentencias
}]
[finally {
   sentencias
}]

try

El bloque que se sitúa tras la cláusula try se ejecuta y cualquier excepción que se produzca interrumpirá la ejecución y enviará el programa a la cláusula catch.

catch (excepcion)

El bloque que se sitúa tras la cláusula catch se ejecuta cuando se ha producido alguna excepción en el bloque try. La excepción se recibe en la variable excepcion que se indica dentro de la cláusula catch.

finally

El bloque que se sitúa tras la cláusula finallyse ejecuta en todos los casos y es utilizada para asegurarnos que se ejecutan determinadas sentencias se haya o no producido un error, incluso cuando los bloques try o catch contengan la instrucción return.

Ejemplo

try {
    undefined_function();
} catch(e) {
    console.log(e.message);
} finally {
    console.log('finally');
}
ECMA-262 Edición 3

var

Declara una variable. En la declaración también es posible realizar una asignación inicial de un valor.

Sintaxis

var variable [= valor] [, variable2 [= valor2] [, variableN [= valorN]] ]

variable

Cualquier nombre de variable válido.

= valor

Asignación del valor inicial de la variable.

Se pueden declarar y asignar varias variables dentro de la misma instrucción, sólo hay que encadenar unas con otras por medio de comas.

Aunque el uso de var es opcional, usarlo o no puede cambiar el comportamiento del programa. Si existe una variable global con igual nombre que una variable local a una función y no se utiliza var para declarar la variable, se entiende que estamos utilizando la variable global, pero si usamos var se creará otra variable local con igual nombre, ocultando la variable global.

Las variables se evalúan como si se declararan al principio de cualquier ámbito en el que existen. Por este motivo en ocasiones se producen comportamientos inesperados cuando se declaran variables dentro del código, incluso en secciones de código que no se ejecutan, ya que la variable siempre es declarada al inicio de la función.

Ejemplo

var a = 10 // Variable global

function test1() {
    var b = 12;        // Variable local
    return b * a;
}
function test2() {
    a = 1;            // Modifica la variable global
    var b = 12;        // Variable local, aunque se define aquí, se define al empezar de la función
    return b * a;
}
console.log(test1());    // 120
console.log(test2());    // 12
console.log(test1());    // 12 - la llamada a test2() ha modificado la variable global
ECMA-262 Edición 3

while

Crea un bucle que ejecuta una sentencia hasta que la condición es falsa.

Sintaxis

do 
    sentencia
while (condicion)

condicion

Expresión que se evalúa en cada iteración hasta que retorna false y se sale de bucle.

Ejemplo

var i = 0;
while (i < 5) {
   i += 1;
   console.log(i);
}
ECMA-262

with

Modifica el alcance de un objeto para que sea considerado como valor por defecto cuando se llama a propiedades y métodos.

Sintaxis

with (expresion)
    sentencia

expresion

Cualquier expresión que retorne un objeto.

Las sentencia puede incluir llamadas a propiedades y métodos del objeto sin necesidad de indicar objeto en la llamada.

Ejemplo

with (Math) {
    console.log(PI);        // Normalmente usaríamos Math.PI
    console.log(random());  // Normalmente usariamos Math.random()
}

Nota: No se recomienda el uso de esta instrucción, ya que es fuente de confusiones y problemas.

ECMA-262. En ECMA-262 Edición 5 no se acepta esta instrucción en modo use strict