gpt4 book ai didi

javascript - 在这种情况下,有什么替代方法可以替代 eval() 呢?还有其他选择吗?

转载 作者:行者123 更新时间:2023-12-02 22:19:48 34 4
gpt4 key购买 nike

因此,我创建了一个计算器,我的 equals 按钮使用 eval() 函数。我正在寻找使用 eval 函数的替代方法,因为我不断收到有关使用 eval 危险的安全警告。这是否意味着有人可以通过我的等于按钮入侵我的计算机?

代码可以在计算器基础组件 here 第 51 行找到:

handleEquals() {
this.setState(prevState => {
return {
output: isNaN(prevState.output.toString().slice(-1))
? prevState.output
: eval(prevState.output)
}
})
}

最佳答案

您需要解析该表达式。您可以自己执行此操作,也可以使用像 math.js 这样的库(请参阅 this 示例。

虽然我不建议您为这些表达式编写自己的解析器,但我发现这里有一篇文章看起来可以帮助您入门:https://www.freecodecamp.org/news/parsing-math-expressions-with-javascript-7e8f5572276e/

另一种解决方法是自动标记该术语,而不是创建字符串。我的意思是将输入到计算器中的每个术语存储在一个对象或类似的东西中。您仍然需要解析标记,但之后不需要解析字符串。

关于javascript - 在这种情况下,有什么替代方法可以替代 eval() 呢?还有其他选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59268912/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com