例如,如果你要运行一个Python脚本,你会键入Python filename.py,或者如果你想运行一个C程序,make filename then ./ filename。如何使用.js文件做到这一点?


当前回答

从技术上讲,Node.js不是我们所知道的正确的JavaScript,因为没有文档对象模型(DOM)。例如,在浏览器中运行的JavaScript脚本将无法工作。在所有。解决方案是在无头浏览器上运行JavaScript。幸运的是,有一个项目仍然活跃:Mozilla Firefox有一个无头模式。

https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Headless_mode

$ /Applications/Firefox.app/Contents/MacOS/firefox -headless index.html
*** You are running in headless mode.

其他回答

如果你有MacOS,你可以通过在Terminal.app中输入jsc来获得一个javascript控制台:

/System/Library/Frameworks/JavaScriptCore.framework/Versions/Current/Helpers/jsc

在旧版本的OS X上,jsc命令位于:

/System/Library/Frameworks/JavaScriptCore.framework/Versions/Current/Resources/jsc

你也可以运行你的.js脚本,通过添加它的名字作为jsc的参数,就像这样:

jsc your_awesome_script_name.js

注意:我在开发过程中使用console.log(),但jsc需要使用debug()函数。

在Ubuntu上,你有一些很好的ECMAScript外壳供你使用。其中值得一提的是SpiderMonkey。你可以通过sudo apt-get install spidermonkey添加它

在Windows上,就像其他人说的,你可以依靠cscript和wscript直接构建在操作系统上。

我还想添加另一种思考问题的方式:),如果你有时间并且喜欢学习新东西,我想提到咖啡脚本,它有自己的编译器/控制台,并为你提供超级正确的Javascript。你也可以在浏览器上试试(链接"try coffeescript")。

2021年7月更新: 你也可以安装和使用出色的QuickJS,在OS X上可以通过brew install QuickJS安装。然后一个交互式控制台将可在您的提示与qjs

您将需要一个JavaScript引擎(例如Mozilla的Rhino)来评估脚本——就像您对Python所做的一样,尽管后者随标准发行版一起发布。

如果您已经安装了Rhino(或其他选项),并且在您的路径上,那么运行JS确实可以非常简单

> rhino filename.js

值得注意的是,虽然JavaScript本身就是一种语言,但许多特定的脚本都假定它们将在类似浏览器的环境中执行——因此尝试访问全局变量,例如location。通过附加DOM对象而不是调用print来创建输出。

如果你有一个为网页编写的脚本,你可能需要包装或修改它,以允许它接受来自stdin的参数并写入到stdout。(我相信Rhino有一个模式来模拟标准的浏览器全局变量,这很有帮助,尽管我现在找不到这个文档。)

另一个答案是NodeJS!

Node.js是一个基于Chrome的JavaScript运行时构建的平台,可以轻松构建快速、可扩展的网络应用程序。Node.js使用事件驱动的非阻塞I/O模型,这使得它轻量级且高效,非常适合跨分布式设备运行的数据密集型实时应用程序。

使用终端,您将能够使用节点命令启动它。

$ node
> 2 + 4
6
> 

注意:如果你想退出,只需输入

.exit

你也可以像这样运行JavaScript文件:

node file.js

«立即安装»

在Ubuntu上安装libjavascriptcoregtk-3.0-bin,并使用/usr/bin/jsc (manpage)。

如果你用的是MacBook。

在系统中设置node.js并打开终端 导航到保存js文件的目录。 执行命令node <filename.js>

例如,如果filename是script.js,则运行node script.js