簡體   English   中英

如何在運行時評估Javascript ES6代碼?

[英]How can I evaluate Javascript ES6 code at runtime?

我想在運行時使用Node.js執行ES6代碼。 給定一串代碼:

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

es6Eval函數將es6轉換為es5並在運行時評估代碼。

我該怎么做呢?

首先,讓我們解決這個問題:您必須信任該代碼的來源 您在問如何從環境中的字符串運行任意代碼。 如果該代碼是惡意的,則可能發生壞事。 因此,您必須信任代碼的來源(例如,誰將代碼提供給您)。

假設您信任從中獲取代碼的任何人:

  1. 鑒於constconst es6code ,你在“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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM