可以从命令行运行JavaScript文件吗?

可以从命令行运行JavaScript文件吗?,javascript,shell,console,Javascript,Shell,Console,我有几个JS文件,所以如果可能的话,我想从shell调用它们,而不是在控制台窗口(Firefox和Chromium)中复制和粘贴每个JS文件 每个JS文件都有测试函数,可以使用console.log显示它们是否正确。您可以使用。您可以分别运行每个文件,但我当然假设文件之间没有依赖关系 这将讨论在Windows上并且不想安装节点时使用Windows脚本主机。但是Node可能是标准化js的更好选择(它使用v8 Javascript引擎)。如果您的测试需要访问DOM,那么总会有一个无头(Webkit)

我有几个JS文件,所以如果可能的话,我想从shell调用它们,而不是在控制台窗口(Firefox和Chromium)中复制和粘贴每个JS文件

每个JS文件都有测试函数,可以使用console.log显示它们是否正确。

您可以使用。您可以分别运行每个文件,但我当然假设文件之间没有依赖关系


这将讨论在Windows上并且不想安装节点时使用Windows脚本主机。但是Node可能是标准化js的更好选择(它使用v8 Javascript引擎)。

如果您的测试需要访问DOM,那么总会有一个无头(Webkit)浏览器。

扩展使用Node.js的解决方案

下面是上一页的一些示例和屏幕截图

节点REPL(Shell) 如果在命令行中输入无参数的
node
,则将进入Read-Eval-Print循环,简称REPL,否则称为shell。在这里,您可以以交互方式输入JavaScript表达式并立即对其进行计算

从命令行计算JavaScript文件 创建包含以下内容的文件:

console.log('Hello, world');
在命令行中,使用
节点
评估文件:


是的,可以通过
节点来实现。
只需创建一个js文件,编写一些代码,保存并转到保存文件的目录,然后输入
node
。 你完了。
注意:您的系统上必须安装
节点。

我不是说它是最好的解决方案,而是说它是可用的选项之一。我只是想提高大家的认识,其中一个原因是Java是如何运行javascript的,因为它已经有一个嵌入式javascript运行时很长一段时间了。首先是Rhino,现在JavaSE8附带了一个名为Nashorn的新引擎,它基于JSR292和invokedynamic。它通过invokedynamic绑定调用站点提供了对ECMA规范化JavaScript规范的更好遵从性和更好的运行时性能。它可以用于从命令行运行JavaScript程序。为此,Oracle的JDK或OpenJDK的构建包括一个名为jjs的命令行工具。可以在JDK安装的bin/文件夹中找到它,以及著名的java、javac或jar工具

jjs工具接受JavaScript源代码文件列表作为参数。考虑下面的HelL.js文件:

var hello = function() {
  print("Hello Nashorn!");
};

hello(); 
评估它就这么简单:

$ jjs hello.js
Hello Nashorn!
$

有关更多详细信息,您可以参考官方文档

了解Windows上的紧急情况,只需在命令提示符下尝试以下命令行:

cscript /E:jscript myJavaScriptFile.js

在Chrome开发者工具中,你可以有。你所说的“控制台窗口”是什么意思,这与网页有关吗?我使用console.log在Firefox/Chrome的控制台中编写消息,但我可以使用Document.write。可能与Firefox无头模式重复,兄弟还有来自Mozilla的,但也许你可以把“甲骨文纳肖恩”改成“纳肖恩”;)