JavaScript - Se puede sustituir eval por otra lógica o comando?

 
Vista:

Se puede sustituir eval por otra lógica o comando?

Publicado por Enrique (2 intervenciones) el 14/04/2020 18:30:41
Hola, esta función, simplemente asigna en un cuadro de texto el resultado, del calculo con eval, por ejemplo
si vari1= " 10 +2 *3 " la visualización en la caja de texto 'id_calculadora2' muestra 16
mi pregunta es, se puede sustituir eval por otra lógica o comandos?, lógicamente con el mismo resultado.


1
2
3
4
5
function calculadora() {
   var vari1=document.getElementById('id_calculadora1').value;
   var calculator = eval(vari1);
   document.getElementById('id_calculadora2').value=calculator;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de ScriptShow
Val: 2.019
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Se puede sustituir eval por otra lógica o comando?

Publicado por ScriptShow (692 intervenciones) el 15/04/2020 13:22:17
Saludos,

no es necesario cambiar, sólo hay que seguir una lógica... Por ejemplo utilizando paréntesis (...) donde corresponde:

1
2
3
4
5
6
7
8
9
10
11
<script>
function test() {
var input = document.getElementById('numbers').value;
var results = eval(input);
document.getElementById('results').innerHTML = results;
}
</script>
 
Calcular: <input type="text" id="numbers" value="(10+2)*3">
<input type=button value="T e s t" onClick="test()"><br>
Resultado: <span id="results">?</span>

P.D.: Hace unos días que retomé ese mismo script, que tenía entre otros tantos.

Si necesitas referencias relacionadas con operadores: https://www.w3schools.com/jsref/jsref_operators.asp

Espero sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Se puede sustituir eval por otra lógica o comando?

Publicado por Enrique (2 intervenciones) el 15/04/2020 16:59:01
Hola de nuevo, si es correcta tu respuesta,
pero tengo entendido que utilizar 'eval', puede ser peligroso, ya que se puedes invocar un objeto con los privilegios que tenga el operador,
es decir se podría ejecutar 'algo' , si conoces el entorno donde está programado, solamente quería saber si es posible sustituir eval por otro tipo de secuencia, (lo tengo en una calculadora, dentro de un programa )
muchas gracias,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar