mozilla
Los resultados de tu búsqueda

    eval

    Resumen

    Evalúa una cadena de código JavaScript sin referenciar a un objeto en particular.

    Sintaxis

    eval( cadena [, objeto ])

    Parámetros

    cadena
    Una cadena que representa una expresión, sentencia o secuencia de sentencias en JavaScript. La expresión puede incluir variables y propiedades de objetos existentes.
    objeto
    Un argumento opcional; si se especifica, la evaluación se restringe al contexto del objeto especificado.

    Descripción

    eval es una función de alto nivel y no está asociada a ningún objeto.

    El argumento de la función eval es una cadena. Si la cadena representa una expresión, eval evalúa la expresión. Si el argumento representa una o más sentencias JavaScript, eval ejecuta las sentencias. No llame a eval para evaluar una expresión aritmética; JavaScript evalúa las expresiones aritméticas automáticamente.

    Si construye una expresión aritmética como una cadena, puede usar eval para evaluarla más tarde. Por ejemplo, suponga que tiene la variable x. Puede posponer la evaluación de una expresión que implique a x mediante la asignación a la cadena del valor de la expresión, diciendo "3 * x + 2", a la variable, y llamando entonces a eval posteriormente en el script.

    Si el argumento de eval no es una cadena, eval devuelve el argumento sin cambios. En el siguiente ejemplo, se especifica el constructor String, y eval devuelve un objeto String en vez de evaluar la cadena.

    eval(new String("2 + 2")); // devuelve un objeto String que contiene "2 + 2"
    eval("2 + 2");             // devuelve 4
    

    Puede trabajar sobre esta limitación de una manera genérica usando toString.

    var expresion = new String("2 + 2");
    eval(expresion.toString());
    

    No puede usar la función eval indirectamente mediante la invocación de un nombre diferente a eval; si lo hace podría ocurrir un error en tiempo de ejecución. Por ejemplo, no debería usar el siguiente código:

    var x = 2;
    var y = 4;
    var miEval = eval;
    miEval("x + y");
    

    No debería utilizar eval para convertir los nombres de propiedades en propiedades. Por ejemplo, considere el siguiente ejemplo. La función getNombreCampo(n) devuelve el nombre del elemento del formulario especificado como una cadena. La primera sentencia asigna el valor de cadena del tercer elemento del formulario a la variable campo. La segunda sentencia utiliza eval para mostrar el valor del elemento del formulario.

    var field = getNombreCampo(3);
    document.write("El campo llamado ", campo, " tiene un valor de ", eval(campo + ".value"));
    

    Sin embargo, aquí eval no es necesario. De hecho, su uso está desaconsejado. En cambio, use los operadores de miembro, que son mucho más rápidos:

    var campo = getFieldName(3);
    document.write("El campo llamado ", campo, " tiene un valor de ", campo[valor]);
    

    Compatibilidad Hacia Atrás

    JavaScript 1.3 y anteriores

    Puede usar eval indirectamente, aunque ésto está desaconsejado.

    JavaScript 1.1

    eval también es un método de todos los objetos.

    Ejemplos

    Los siguientes ejemplos muestran el resultado usando document.write. En JavaScript del lado servidor, puede mostrar el mismo resultado llamando a la función write en vez de document.write.

    Ejemplo: Usando eval

    En el siguiente código, las dos sentencias que contienen eval devuelven 42. La primera evalúa la cadena "x + y + 1"; la segunda evalúa la cadena "42".

    var x = 2;
    var y = 39;
    var z = "42";
    eval("x + y + 1"); // returns 42
    eval(z);           // returns 42 
    

    Ejemplo: Usando eval para evaluzar una cadena de sentencias de JavaScript

    El siguiente ejemplo utiliza eval para evaluar una cadena str. Esta cadena consiste en sentencias de JavaScript que abren un diálogo Alert y asignan a z un valor de 42 si x es cinco, y asigna 0 a z en caso contrario. Cuando se ejecuta la segunda sentencia, eval provoca que estas sentencias se realicen, y también evalúa el conjunto de sentencias y devuelve el valor asignado a z.

    var str = "if (x == 5) {alert('z is 42'); z = 42;} else z = 0; ";
    document.write("<P>z es ", eval(str));
    

    Valor Devuelto

    eval devuelve el valor de la última expresión evaluada.

    var str = "if ( a ) { 1+1; } else { 1+2; }"
    var a = true;
    var b = eval(str);  // returns 2 
    alert("b is : " + b);
    a = false;
    b = eval(str);  // returns 3
    alert("b is : " + b);
    

    Vea También

    Etiquetas y colaboradores del documento

    Etiquetas: 
    Contributors to this page: Sheppy, Talisker, SphinxKnight, teoli, Mgjbot
    Última actualización por: SphinxKnight,
    Ocultar la barra lateral