How can I use js eval to return a value?

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);

If you can guarantee the return statement will always exist, you might find the following more appropriate:

var customJSfromServer = "return 2+2+2;"
var asFunc = new Function(customJSfromServer);
alert(asFunc()) ;// should be "6";

Of course, you could also do:

var customJSfromServer = "return 2+2+2;"
var evalValue = (new Function(customJSfromServer)());
alert(evalValue) ;// should be "6";

Tags:

Javascript