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