如何在javascript中计算字符串函数和返回值?
我有一个字符串形式的方法,如:如何在javascript中计算字符串函数和返回值?,javascript,Javascript,我有一个字符串形式的方法,如: var str = "function evalTest(param){if(param)return '<div>hello</div>'}else return '<div>world</div>'" 现在,如果我这样评估: var final = eval(res); 我希望final应该包含result world,因为passed param=false 如何在这个世界上实现这个结果?首先需要注意的是:
var str = "function evalTest(param){if(param)return '<div>hello</div>'}else return '<div>world</div>'"
现在,如果我这样评估:
var final = eval(res);
我希望final应该包含result world,因为passed param=false
如何在这个世界上实现这个结果?首先需要注意的是:对于您试图解决的任何问题,几乎肯定有一个更好的解决方案,将该函数放在字符串中
还有一个:除了同一个最终用户之外,不要评估最终用户提供的代码。例如,永远不要让用户A提供代码,然后在用户B的浏览器中对其求值。在用户B不知道您正在这样做并明确同意的情况下
实际上,几乎在任何时候,当您使用eval或它的同类新函数时,都值得退一步看看是否有其他方法可以使用
但在回答问题时:
eval只是创建函数。字符串中没有调用它的任何内容
由于eval在当前作用域中神奇地工作,因此对字符串求值将在当前作用域中创建函数。然后,您可以调用函数以获得所需的结果:
var str=函数evalTestparam{ifparam{return'hello'}else{return'world'};
var res=str.replaceparam,param=false;
评估;
var最终=评估测试;
console.logfinal;这是非常危险的。你应该读一读。我有一个字符串方法,就像你试图通过这样做来解决的任何问题一样,几乎肯定有更好的方法来解决它。你可能会考虑提出一个关于这个问题的问题。
var final = eval(res);