gpt4 book ai didi

javascript - 解析 JavaScript 并跟踪所有变量及其值

转载 作者:行者123 更新时间:2023-12-03 08:17:50 25 4
gpt4 key购买 nike

我正在看Bret Victor's talk "Inventing on Principle"有一天晚上,他决定尝试构建他演示的实时 JavaScript 编辑器。您可以在18:05查看它的实际效果。当他实现二分搜索时。

他似乎从未发布过这样的编辑器,但无论如何,我认为构建一个类似的编辑器我可以学到很多东西。

这是我到目前为止所拥有的

nasherai

它目前可以做什么:

  • 跟踪变量及其值(如果指定为文字)
  • 将它们打印在右侧同一行
  • 显示解析错误

我正在使用ElectronAngular构建应用程序,因此它是 OSX 的桌面应用程序,但用 JavaScript 和 HTML 编写。

为了解析,我使用 Acorn 。到目前为止,它是一个非常棒的解析器,但是解析后实际运行代码确实很困难。仅允许诸如 var x = 1 之类的文字赋值是可行的,但是一旦您尝试执行像 var x = 1 + 2 这样简单的事情,事情就会变得非常复杂,因为Acorn 如何构造解析结果。

我不想只是评估整个事情,因为它可能很危险,而且可能有更好的方法来做到这一点。

理想情况下,我可以找到一种安全的方法来评估左侧的代码并以某种方式跟踪所有变量。不幸的是,我的研究表明 JavaScript 中无法访问私有(private)变量,所以我希望我可以依靠其他开发人员的聪明才智来帮助我解决这个问题。任何关于如何比 Acorn 更好/更容易地做到这一点的提示将不胜感激。

如果您需要它,我的代码库在这里:https://github.com/dchacke/nasherai

最佳答案

尝试sandbox用于安全评估字符串。

var s = new Sandbox()
s.run( '1 + 1 + " apples"', function( output ) {
// output.result == "2 apples"
})

关于javascript - 解析 JavaScript 并跟踪所有变量及其值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33863112/

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