问题标签 [javascript-engine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
35 浏览

javascript-engine - JavascriptEngine 中的 Eval 将“a-gamma”作为单独的变量?有什么解决方案吗?

我正在尝试将变量存储为

但在评估时,它会抛出 gamma 未在变量中定义的异常。有什么解决办法吗?. 我被困住了!

0 投票
0 回答
34 浏览

double - 当被问及双打问题时,ScriptEngine 返回 5

我使用下面的代码来制作我的 scriptEngine。在我尝试进行包含双精度的计算之前,它工作得很好。下面的代码应该返回 30 而不是返回 5。我做错了什么还是 scriptEngine 不能做双打?

0 投票
1 回答
618 浏览

java - Nashorn JavaScript Invocable.getInterface 在 Web 应用程序中的类加载器中失败

我需要从 Java 代码中调用(使用 Nashorn)在 JavaScript 中定义的函数并传递一些参数。我没有使用 Invocable.invokeFunction("Foo", arg1, arg2),而是定义一个接口,然后请求 Invocable 生成它的实现,就像 Oracle在此处建议的那样,“嵌入 Oracle Nashorn”:

问题是,因为我在 Tomcat 中运行的 Web 应用程序中执行此操作,所以我的 Composer 由应用程序级类加载器加载,而 nashorn 类由扩展类加载器加载。所以 getInterface 失败说TypeError: Can not find a common class loader for ScriptObject and mypackage.Composer

任何想法如何克服?当然,我可以尝试在父类加载器中加载 Composer,假设它实际上是一个 ext 加载器(类似于 hack),但至少存在一个问题:它找不到我的类。我想这是对的:我的包驻留在我的 Web 应用程序中,而扩展加载器不在那里。还有什么好主意吗?

PS 现在我注意到这条消息很奇怪:如果一个应用程序类加载器委托给 ext 类加载器,那么后者当然是它们的通用类加载器。也许他们试图说目标接口的类加载器必须等于实际实现的类加载器,或者实现的类加载器必须委托给目标的类加载器(反之亦然)?

0 投票
1 回答
1351 浏览

javascript - 在 V8 中,null、undefined 和 boolean 等原始类型如何存储在内存中?

是否boolean在内存中存储为 32 位整数?null值呢?

在《Speaking Javascript 》一书中,它指的是一种类型标签,用于指示存储在内存中的值的类型。例如,类型的类型标签Object是 000。什么是类型标签?

如何找到值类型的类型标记,例如 abooleanstring

0 投票
2 回答
210 浏览

javascript - Javascript中的函数声明函数fx(){}是LHS还是RHS查找?

我正在阅读Kyle Simpson的You don't know JS的Scopes and Closure标题,特别是这个主题Compiler Speak。本节介绍引擎使用的查找类型。现在我在本节给出的范围内了解什么是 LHS 或 RHS 查找。

我的问题是说明表单的函数声明function fx(a) {..不是 LHS 查找。有相同的解释,但我无法理解。这是整个笔记

您可能很想将函数声明函数概念化foo(a) {...为普通的变量声明和赋值,例如var fooand foo = function(a){...。这样做时,很容易将此函数声明视为涉及 LHS 查找。然而,微妙但重要的区别在于,编译器在代码生成期间同时处理声明和值定义,这样当引擎执行代码时,不需要处理将函数值“分配”给foo. 因此,以我们在这里讨论的方式将函数声明视为 LHS 查找分配是不合适的。

任何形式的澄清都会有所帮助。即使在 LHS 和 RHS 查找中。

0 投票
1 回答
851 浏览

javascript - 从 Java 传递的 Nashorn 和 'with' 上下文

我正在努力nashorn阻止with。我想从java中传递'context'HashMap并在我的代码中使用它。但是,我无法让这个工作。

JS 被评估

Java 地图将被“通过”

下面我准备了简短的课程来演示我面临的错误。

感谢您的任何帮助。

0 投票
0 回答
142 浏览

javascript - 是否可以从 Chrome 应用程序/扩展程序调用本机按键和鼠标移动

就像 java.awt.Robot 或 RobotJS 一样。

再一次,我实际上需要从 Chrome 应用程序/扩展程序中移动鼠标并按下键(不仅仅是普通的网站,知道这是不可能的)?

0 投票
3 回答
560 浏览

javascript - 检测 HTML 元素是否分配了 javascript 函数

我正在开发一个 Windows 窗体应用程序来解析和分析网页。我使用了网络浏览器控件。该网页有 html 和 javascript 代码波纹管。我的 windows 窗体有 c# 代码。这是代码:

HTML 代码:

Javascript:

导航相关 URL 后,我的 Windows 窗体应用程序中的 C# 代码:

这样,在检查每个元素的相关字符串后,我可以确定该元素是否已分配 javascript 函数。这适用于 el1 和 el2,但它为 el3 返回空字符串。

我怎么知道第三个元素使用 addEventListener 分配了 javascript 函数?

0 投票
1 回答
843 浏览

node.js - 如何从 nodejs 检测它正在运行哪个 JavaScript 引擎?

现在有几个 nodejs 的分支,其中一些支持谷歌 V8 引擎以外的 JavaScript 引擎。

为了让我的节点代码查看它在哪个 JS 引擎下运行,目前最好的方法是什么?

我知道的引擎是:

  • Google 的V8 - 官方node.jsiojs fork支持的唯一引擎。JXcore支持的引擎之一。
  • Mozilla 的SpiderMonkey - JXcore支持的引擎之一。
  • Microsoft's ChakraCore - Microsoft的 node.js 端口支持的引擎,显然是JXcore支持的引擎之一,尽管我还没有让那个引擎工作。

我问了一个单独的问题,关于检测正在使用哪个分叉的 nodejs。这个问题只是关于检测 JS 引擎。)

0 投票
1 回答
1421 浏览

java - 致命异常 NoClassDefFoundError

在 Android 中我想执行一个脚本。所以我添加了 JavaScript 引擎

http://www.java2s.com/Code/JarDownload/jsr223/jsr223.jar.zip

我的 gradle(模块:app) 说:

如果我正在运行应用程序并单击初始化脚本引擎的按钮,则会出现以下错误。

任何想法如何解决?