什么是可用于Windows的JavaScript编译器或解释器?
我最近阅读了Eloquent JavaScript一书。 本书向读者介绍了使用JavaScript作为第一语言的编程。 不幸的是,这些程序被限制在embedded在HTML中的浏览器内运行。 所以,我想知道是否可以编写可以单独执行的JavaScript程序。
编译器或解释器应该易于作为预编译的二进制文件提供 ,可以由初学者下载和安装。 他应该能够编写使用该编译器编译的简单的独立JavaScript程序。 额外的JavaScript库,框架,IDE和debugging支持,将与这个编译器一起工作将是一个加号。
没有人提到,窗口自己的JavaScript编译器: http : //msdn.microsoft.com/en-us/library/vstudio/7435xtz6(v=vs.100).aspx
Microsoft (R) JScript Compiler version 8.00.50727 for Microsoft (R) .NET Framework version 2.0.50727 Copyright (C) Microsoft Corporation 1996-2005. All rights reserved. jsc [options] <source files> [[options] <source files>...] JScript Compiler Options - OUTPUT FILES - /out:<file> Specify name of binary output file /t[arget]:exe Create a console application (default) /t[arget]:winexe Create a windows application /t[arget]:library Create a library assembly /platform:<platform> Limit which platforms this code can run on; must be x86, Itanium, x64, or anycpu, which is the default - INPUT FILES - /autoref[+|-] Automatically reference assemblies based on imported namespaces and fully-qualified names (on by default) /lib:<path> Specify additional directories to search in for references /r[eference]:<file list> Reference metadata from the specified assembly file <file list>: <assembly name>[;<assembly name>...] - RESOURCES - /win32res:<file> Specifies Win32 resource file (.res) /res[ource]:<info> Embeds the specified resource <info>: <filename>[,<name>[,public|private]] /linkres[ource]:<info> Links the specified resource to this assembly <info>: <filename>[,<name>[,public|private]] - CODE GENERATION - /debug[+|-] Emit debugging information /fast[+|-] Disable language features to allow better code generation /warnaserror[+|-] Treat warnings as errors /w[arn]:<level> Set warning level (0-4) - MISCELLANEOUS - @<filename> Read response file for more options /? Display help /help Display help /d[efine]:<symbols> Define conditional compilation symbol(s) /nologo Do not display compiler copyright banner /print[+|-] Provide print() function - ADVANCED - /codepage:<id> Use the specified code page ID to open source files /lcid:<id> Use the specified LCID for messages and default code page /nostdlib[+|-] Do not import standard library (mscorlib.dll) and change autoref default to off /utf8output[+|-] Emit compiler output in UTF-8 character encoding /versionsafe[+|-] Specify default for members not marked 'override' or 'hide'
通常有几个副本躺在任何窗口安装,但他们通常不在路径,所以你必须找到他们。
编译器能够将JavaScript文件编译为可以在安装了.NET的任何Windows计算机上运行的可执行文件。
即使你不选择将它用于Web应用程序, Node.js也可以很好地用作解释器。 这是一个在V8 JavaScript引擎上运行的框架。 有大量官方和第三方模块可供选择 。
它确实需要cygwin在Windows上运行(或者你可以用MingW编译它 )。 有预编译的二进制文件,包括必需的cygwin库,可在node-js.prcn.co.cc上获得 。
有几个免费的独立的Javascript解释器可用:
jsdb很好。 我在editplus中使用它,有时在Aptana Studio中使用它
好吧,Windows Scripting Host是使用Microsoft的Active Scripting执行各种管理任务的工具,可以运行各种语言的脚本,包括JScript,它们的ECMAScript实现。 没有什么可说的,所以把浏览器指向参考 – http://msdn.microsoft.com/en-us/library/shzd7dy4(VS.85).aspx
忘了编译器 ,BTW,ECMAScript是解释语言(JIT编译是另一个问题)
另外请注意,ECMAScript标准没有定义任何标准的I / O,所以主机程序负责提供它。
您也可以在某些情况下直接在命令提示符下运行JScript脚本(Microsoft的Javascript实现)。
但我个人最喜欢的是犀牛,在另一个答案中提到。
也许有点复杂,你可以使用Rhino的JavaScript编译器将JavaScript源代码编译成Java类文件,然后使用GCC编译器套件的标准GCJ前端将其编译为二进制可执行程序。
正如其他人所提到的,ECMAScript的JScript实现在现代Windows安装中默认是可用的。 具有“.js”扩展名的文件可以双击执行,或者使用cscript.exe命令在命令行上运行。
我也有同样的需求,但最终找到了一个名为DeskJS的应用程序( https://deskjs.wordpress.com )。 这是一个免费的可移植的Windows控制台应用程序,可让您运行纯JavaScript代码,甚至加载任何现有的JS文件。 它支持在浏览器中实现的基本的JS弹出框。 您可以将您的命令保存为可以在启动时运行的JS文件,也可以通过在应用程序中拖放它们来保存。 另外还有更多的东西,比如你可以为Sublime Text创建一个可以通过cmd运行JS文件的构建系统,它支持自定义整个控制台和片段的主题,这些主题和片段可以保存JavaScript代码的短片段供以后使用。 该应用程序还包括其他本地API的改进。
你有没有尝试过Mozilla XUL和XULRunner ? 它不仅仅是一个解释器,而且还运行在MacOsX和Linux上,而不仅仅是Windows。 Firefox和Thunderbird是使用它编写的(是的,Firefox是用JavaScript编写的!)。 下个月华沙FalsyValues会议将举行XUL研讨会 – 链接 。