【问题标题】:javascript equivalent of python's compile and execjavascript相当于python的编译和执行
【发布时间】:2013-05-20 05:53:41
【问题描述】:

在 python 中,可以获取包含 python 代码的字符串,对其进行编译并使用 exec 运行生成的代码。

可以用 javascript 做类似的事情吗(任何实现都很好)。我的目标是获得类似 javascript 的 eval 但更快的东西。

谢谢

【问题讨论】:

  • 只有eval(),没有别的。
  • @HennyH ast 是一个 Python 模块。这个问题是关于 JavaScript 的。
  • 非常认真地,在 JavaScript 中自己实现 eval() 会(非常)慢,无论是开发速度还是运行速度,除非它是针对某些特定的小众事物而无需使用即可完成eval() 或原生函数的手工制作版本。

标签: javascript python compilation exec eval


【解决方案1】:

由于 javascript 的动态特性,您不能真正轻松地将其编译为低级语言。这就是为什么 spidermonkey、V8 等是即时 (JIT) 编译器 - 它们使用运行时类型信息来部分编译片段,有时比提前编译器更有效。

也许你想看看闭包编译器? https://developers.google.com/closure/compiler/

【讨论】:

    【解决方案2】:

    JS eval() 类似于 Python 函数 eval()。使用eval(),我们可以结合使用HTML和JS来创建非常简单的JavaScript编辑器,如下所示:

    <!DOCTYPE html>
    <head>
    <title>JavaScript Editor</title>
    <script>
    function runCode() {
       var code = document.getElementById('txtCode').value;
       eval(code);
    }
    </script>
    </head>
    <body>
    <textarea id = "txtCode" cols = "50" rows = "5">alert("hello");</textarea>
    <input type = "button" value = "Run" onClick="runCode();"/>
    </body>
    </html>
    

    如果您复制并粘贴上面的代码并运行它,它会在浏览器中产生“hello”的警报。您可以使用 JavaScript 代码更改文本区域中的代码。

    【讨论】:

      猜你喜欢
      • 2010-09-07
      • 2013-04-13
      • 1970-01-01
      • 2011-12-02
      • 1970-01-01
      • 2013-03-11
      • 2011-07-28
      • 2017-06-25
      • 1970-01-01
      相关资源
      最近更新 更多