Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将字符串解析为JS语言以及将字符串解析为json或xml_Javascript - Fatal编程技术网

Javascript 将字符串解析为JS语言以及将字符串解析为json或xml

Javascript 将字符串解析为JS语言以及将字符串解析为json或xml,javascript,Javascript,2021年1月16日更新 我后来研究了这个问题,发现这是一个愚蠢的问题,因为我们可以使用eval或通过构造函数来评估js代码 新函数(…ParamsString,CodesString) 顺便说一句,这是我正在制作的bud版本 我想创建一个简单的图形计算器,用户将 将数学表达式转换为输入元素,js将使用input.value访问该元素: let input = document.querySelector('#text'); 在绘制函数时,我可以使用eval(…)但它太慢了, 所以,如果你

2021年1月16日更新

我后来研究了这个问题,发现这是一个愚蠢的问题,因为我们可以使用
eval
或通过构造函数来评估js代码

新函数(…ParamsString,CodesString)
顺便说一句,这是我正在制作的bud版本


我想创建一个简单的图形计算器,用户将 将数学表达式转换为输入元素,js将使用input.value访问该元素:

let input = document.querySelector('#text');
在绘制函数时,我可以使用
eval(…)但它太慢了,
所以,如果你有办法储存一些像这样的字符串,我将不胜感激
((“x=>”+“sin(x)”)转换为作为函数的变量

let expr = parseJS("x => " + "sin(x)");
console.log(expr(PI));
// 1

像这样的东西是你想要的吗

let expr=x=>Math.sin(x);
函数btnSubmit(){
让输入=parseFloat(document.querySelector('#text').value);
警报(expr(input));
}
输入一个数字:

希望我已经解决了这个问题,我想与大家分享我的知识。 这是获取变量作为JS函数的代码:

var funcnsexprscript=document.createElement('script');
funcexprscript 1.appendChild(document.createTextNode(`let funcExpr=[(x=>NaN)]`);
document.body.appendChild(funcExprscript 1);
函数generateJSfunction(文本){
设func=`funcExpr.push(x=>${text});`;
让funcnsexprscript=document.createElement('script');
funcnsexprscript 2.textContent=func;
document.body.appendChild(funcExprscript 2);
funcnsexprscript 2.remove();
返回funcExpr[funcExpr.length-1];

}
Ah,像
eval(“x=>”+“sin(x)”)
?对不起,我没有正确表达,请看编辑的问题。编辑的问题看起来是一样的<代码>让expr=eval(“x=>”+“sin(x)”);console.log(expr(PI))除了从不使用
eval
,它是一个非常不安全的函数调用。取而代之的是,不要自己动手,而只是从已经存在的几个javascript“字符串到数学函数”库中选择一个?例如,etc或者如果您确实需要符号表达式,那么,
input.value
将是“sin(x)”x的值是多少?