Función Javascript eval() (y por qué NUNCA usarla)

JavaScript eval() La función ejecuta una cadena como JavaScript. Este es un riesgo de seguridad masivo ya que, si se usa en producción, puede permitir que terceros ejecuten su propio código en su aplicación.

Sintaxis de eval()

eval(string)

Tenga en cuenta que:

  • cadena es una cadena que contiene código JavaScript
  • evaluar() devolverá el valor devuelto al ejecutar el código en la cadena
  • Simplemente no lo uses

Ejemplo de Javascript eval()

Este artículo solo incluye un ejemplo para que pueda ver cómo eval() funciona, de modo que si accidentalmente se cae sobre su teclado y las letras E-V-A-L se ingresan milagrosamente en su código JavaScript, puede detectarlo y eliminarlo.

let test = eval('2 + 2'); // Assign the result of the string as JavaScript to the variable test
console.log(test); // Will output 4

Qué (no) usar en su lugar: Función()

Si, por alguna razón, es absolutamente necesario ejecutar código JavaScript desde una variable de cadena, use la Función objeto en su lugar. Aquí está el código anterior adaptado para crear una Función objeto que ejecutará el código proporcionado desde una cadena:

function twoPlusTwo(){
    return Function('return (2 + 2);')();
}
console.log(twoPlusTwo())

Tenga en cuenta que incluso este método es muy probable que sea bloqueado por su navegador web o el de sus usuarios.

Para los detalles técnicos sobre la Función objeto, MDN te tiene cubierto

Realmente, deberías evitar intentar ejecutar código JavaScript desde cadenas por completo. Si su concepto requiere que se haga, reconsidere la estructura de su código para que no sea necesario.