可以将JavaScript用作通用脚本语言吗?


18

我已经使用JavaScript和某些框架(jQuery,Prototype和一些node.js)进行客户端Web编程,但是从未在台式机上使用台式机,因为在台式机上,我大部分的脚本工作都是使用Python或Bash进行的。

但是恕我直言,如果在浏览器之外使用JavaScript,JavaScript将成为一种很棒的脚本语言。有人尝试过吗?JavaScript是否可以代替Python / Perl / Bash进行快速而肮脏的脚本编写任务?


7
在Javascript Wikipedia文章中有一节名为“ 在外部网页上使用 ”,其中记录了许多Javascript实例,这些实例正是您所描述的。在询问之前,请做一些研究。
尼斯

7
Yannis,SE网站中是否有这样的规定?我认为SE的目标也是成为Wiki的一部分,这意味着只应关闭聊天,离题,无法回答或极低质量的问题。
陶Szelei

3
@TamásSzelei实际上,有一条规则总结为“做功课”。SE是Wiki的一部分,但从某种意义上说每个帖子都是每个人都可以编辑的,而不是为了建立通用参考。杰夫·阿特伍德(Jeff Atwood)在此meta答案中总结了“官方”政策。
尼斯2012年

3
@Yannis:我本人已经研究了这个话题,互联网上与此主题有关的资源严重缺乏。此外,我很高兴在一个论坛上提出了这个问题,在这个论坛上,计算机社区的聪明,知识渊博的成员可以根据他们的经验,观点和建议来讨论。关于严重依赖主观意见的主题,我相信DAY维基百科文章中有20k代表的stackexchange成员的话。
JavaScript先生2012年

3
@ ajax81如果在该问题上有以前的研究证据,那将是一个非常好的问题。如果您真的如您所说的那样珍惜社区,那么我敢肯定您不想浪费任何人的时间,并且您会很乐意与我们分享您的研究成果,并询问在各种问题中未得到充分回答的问题一般参考网站。我并不是在建议Wikipedia作为SE蜂巢思维的替代品,我的意思恰恰相反,我们不是替代品,请问何时Wikipedia不够用(但是请告诉我们如何以及为什么还不够) 。
尼斯,2012年

Answers:


22

是! 您绝对可以使用Node.js或Rhino做到这一点。例如,coffeescript编译器不过是一个node.js脚本。

我承认,通常这不是我首选的台式机脚本,但是我认为没有理由为什么它不能很好地用于许多任务。


11

Windows有一个称为Windows脚本宿主的组件,它使您可以通过JScript自动化管理,甚至在某种程度上模仿用户活动。

2017年更新:OSX现在允许您使用Javascript自动化桌面任务。以前通过AppleScript可以实现的功能现在可以通过Javascript实现。


5

我主要使用javascript,因为我喜欢它,我的日常工作在很大程度上受到它的影响。现在我所说的一切是什么意思:

  1. 自定义工具(使用node-webkit可以带来桌面体验)

  2. 通过node.js在我的机器上运行的自定义脚本

  3. 行动应用程式。我什至不需要PhoneGap,因为我对访问URL非常满意。

  4. 使用node.js的Web应用程序的后端。我可以访问文件系统和数据库,所以我缺少什么?嗯..一个足够成熟的框架,我希望这个功能可以解决。

  5. 当然,网站上还不错的jQuery内容。

其他:

  1. 我用javascript解决了所有的编码katas(project euler,codewars)

  2. 我实现了对Java感兴趣的算法

  3. 使用three.js和webgl进行3D实验。

有人会因为性能而击败我,但我想满足于编写代码和理解主题的性能,而不是使其运行得如此之快。

至于桌面体验,对我来说,使用HTML和CSS作为用户界面是最令人愉快的方式。


4

Qt提供QtScript。维基百科说:

QtScript是一个脚本引擎,自4.3.0版以来已成为Qt跨平台应用程序框架的一部分。

脚本语言基于ECMAScript标准,具有一些扩展,例如QObject样式的信号和插槽连接。[1] 该库包含引擎和C ++ API,用于评估QtScript代码并将自定义的QObject派生的C ++类暴露给QtScript。

如果您不知道Qt是什么:它是C ++中的跨平台应用程序框架。它可以很好地消除C ++前端开发的复杂性,并且在移动系统上也受支持。自从我上一次使用Qt开发以来已经很久了,但是我喜欢它。

使用QtScript,我可以想象一个人编写了一个最小的GUI,并使用JavaScript编写了应用程序逻辑。


1
借助Qt5,新的QML / QtQuick GUI框架(使用嵌入式JavaScript来管理UI)使javascript发挥了更大的作用。
Macke 2014年

0

如果您只是在“纯粹在浏览器之外”交谈,那么请看一下诸如Appcelerator和Servoy之类的工具,它们两者都使用Javascript进行编码,最终变成了Java。


-1

我现在正在使用JScript.net创建智能命令行界面。对于这个项目,它的效果非常好,因为eval()派上了用场,但并非一切都如您所愿(它不是纯js)。但是它确实提供了一些RAD。我认为这将成为一个很好的原型平台。但是在js和.net之间的无人区中,这有点奇怪。(它也已过时,因此很难在上面找到好的资源)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.