How can I use js eval to return a value?

前端 未结 7 1505
死守一世寂寞
死守一世寂寞 2020-12-13 13:13

I need to evaluate a custom function passed from the server as a string. It\'s all part of a complicated json I get, but anyway, I seem to be needing something along the lin

7条回答
  •  北海茫月
    2020-12-13 13:32

    The first method is to delete return keywords and the semicolon:

    var expression = '2+2+2';
    var result = eval('(' + expression + ')')
    alert(result);
    

    note the '(' and ')' is a must.

    or you can make it a function:

    var expression = 'return 2+2+2;'
    var result = eval('(function() {' + expression + '}())');
    alert(result);
    

    even simpler, do not use eval:

    var expression = 'return 2+2+2;';
    var result = new Function(expression)();
    alert(result);
    

提交回复
热议问题