v8ScriptEngine如何推断脚本语言

时间:2017-07-19 00:22:22

标签: javascript c# v8 clearscript

好奇,刚刚开始使用V8ScriptEngine, 我有这个代码片段

private void button1_Click(object sender, EventArgs e)
        {
            string f = "function myFunc(x) {if(x >= 3500.00) return '001'; else return '002'; }";
            string r = "";
            using (var eng = new V8ScriptEngine()) {
                eng.Evaluate(f);
                r = (string)eng.Script.myFunc(3500.0000001);
            }
            Console.WriteLine("r={0}", r);
        }

并且工作正常..

脚本引擎如何推断脚本语言是Javascript? 我会想象它必须评估整个脚本块以断言它是java还是vb或任何其他支持的语言,这不是一项昂贵的任务吗?或者是否可以告诉Scriptengine该语言目标是特定的味道?

1 个答案:

答案 0 :(得分:0)

V8引擎只执行Javascript代码。因此,它假定传递给它的任何代码都是Javascript。

如果其他脚本语言指的是TypeScript或CoffeeScript之类的内容,则V8引擎不直接执行这些操作。它们需要首先编译为Javascript(一个通常称为转换的过程)。此过程将生成与TypeScript / CoffeeScript源代码等效的Javascript代码。