gpt4 book ai didi

javascript - 如何在运行时评估 Javascript ES6 代码?

转载 作者:太空宇宙 更新时间:2023-11-04 03:03:10 26 4
gpt4 key购买 nike

我想使用 Node.js 在运行时执行 ES6 代码。给定一串代码:

const es6code = 'const square = (b) => { return b * b; }';
es6Eval(es6code)(5)

es6Eval 函数会将 es6 转换为 es5 并在运行时评估代码。

我该怎么做?

最佳答案

首先,让我们解决这个问题:您必须信任该代码的来源。您询问如何从环境中的字符串运行任意代码。如果该代码是恶意的,则可能会发生不好的事情。因此,您必须信任代码的来源(例如,无论谁将其提供给您)。

假设您信任从您那里获取代码的任何人:

  1. 鉴于 const es6code 中的 const,您将在“ES6”(即 ES2015+)环境中运行此代码。所以...

    const f = new Function(es6code + "; return square;")();
    // Note ----------------------^^^^^^^^^^^^^^^^^^^^^ ^^
    // And --------------------------------------------/

    然后

    console.log(f(5)); // 25
  2. 如果您需要先转译它,请使用 Node API for Babel先改造一下代码:

    var code = require("babel-core").transform(es6code, options);

    ...然后对结果执行 #1。

关于javascript - 如何在运行时评估 Javascript ES6 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48862378/

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