Función eval en Javascript

No entiendo muy bien para que sirve la función eval, ni su funcionamiento. ¿Me lo podrían explicar de una forma sencilla?

La FAQ Función eval en Javascript tiene

Pertenece a la categoría:

Pregunta
No entiendo muy bien para que sirve la función eval, ni su funcionamiento.


¿Me lo podrían explicar de una forma sencilla?


Respuesta de Miguel Angel Alvarez
Esta función es muy importante, tanto que hay algunas aplicaciones de Javascript que no se podrían realizar si no la utilizamos. Su utilización es muy simple, pero puede que resulte un poco más complejo entender en qué casos utilizarla porque a veces resulta un poco sutil su aplicación.




Con los conocimientos actuales no podemos hacer un ejemplo muy complicado, pero por lo menos podemos ver en marcha la función. Vamos a utilizarla en una sentencia un poco rara y bastante inservible, pero si la conseguimos entender conseguiremos entender también la función eval.





var miTexto = "3 + 5"


eval("document.write(" + miTexto +")")





Primero creamos una variable con un texto, en la siguiente línea utilizamos la función eval y como parámetro le pasamos una instrucción javascript para escribir en pantalla. Si concatenamos los strings que hay dentro de los paréntesis de la función eval nos queda esto.





document.write(3 + 5)





La función eval ejecuta la instrucción que se le pasa por parámetro, así que ejecutará esta sentencia, lo que dará como resultado que se escriba un 8 en la página web. Primero se resuelve la suma que hay entre paréntesis, con lo que obtenemos el 8 y luego se ejecuta la instrucción de escribir en pantalla.

Complementar la respuestaComplementar la respuesta
Volver al árbol de categoríasVolver al árbol de categorías

Comentarios
Fueron enviados 4 comentarios a la faq
1 comentario no revisado
3 comentarios revisados:
Por: PABLO JARAMILLO
19/1/06
eval se utiliza para transformar una cadena de caracteres a un expresión aritmética , la cual es evaluada.
ejemplo:
var cadena="3+4";
var numero=eval(cadena);
La respuesta que se asigna a numero sera 7
Por: Jesse James
23/1/07
PERO SI LO Q HAY EN EL STRING NO SON NUMEROS Q PUEDA OPERAR EL EVAL LO Q HARIA ES SOLO CONCATENARLA POR EJEMPLO
var nombre = "kiko"
var completo = eval(El nombre es: "+nombre);
document.write(completo);
ESCRIBIRIA EN PANTALLA: El nombre es: kiko
por favor si hay otra opinion avisarme
Por: Ñuño Martínez
23/8/07
El comentario de PABLO JARAMILLO no está completo, ya que eval no se utiliza únicamente para transformar una cadena de caracteres a un expresión aritmética, sino cualquier expresión JavaScript. Eso quiere que se puede escribir y ejecutar lo siguiente:

var Nombre = 'Pablo';
var Comando = 'alert ("Hola '+Nombre+'");';
eval (Comando);

Como resultado, se abrirá una ventana de alerta con el mensaje "Hola Pablo" en su interior.

Volver al árbol de categoríasVolver al árbol de categorías
Alojados en el grupo