JavaScript库/框架分类

4

我开始学习用于Web应用程序的JavaScript。在这之前,我有基本的JavaScript和jquery操作DOM元素的经验,并且也曾经做过一些AJAX。

最近在网上阅读时,我发现:

  • JavaScript可以像Node JS一样用于服务器端
  • 传统的JavaScript用于操作DOM元素和AJAX
  • 它还可以用于构建基于MV*体系结构的强大应用程序(客户端),使用框架/库[如Backbone JS、Angular JS、Ember JS]。
  • 然后还有用于微模板的JavaScript框架/库[如underscore JS、HAML-JS],用于AMD的[require JS]、Logic Less [Handlebars JS、Mustache、Dust JS]。
  • 还有CoffeeScript,它可以编译成JS。

在阅读了所有这些内容之后,我非常困惑JavaScript框架/库如何根据其方面 [客户端、服务器端、客户端-服务器端、浏览器端] 和功能 [MV*、DOM脚本化、微模板等] 进行分类。能否有人通过每个库/框架的示例来解释这个混乱的概念?此外,是否有任何资源/书籍/幻灯片可以了解JavaScript在Web上的不同用途。


我不会烦恼这些。我只使用Vanilla JS - Niet the Dark Absol
1
我最近写的JS库可以在浏览器和Node中使用。试图把库放进整齐的小盒子里并不是很有用——它们不会适用于所有情况。寻找解决你所面临问题的东西,而不是为了解决特定的假想问题而去寻找。 - Quentin
在 http://addyosmani.com/blog/tools-for-jquery-application-architecture-the-printable-chart/ 找到了一些很棒的资源。 - Saurabh Goel
1个回答

2
JavaScript是一种语言,您正在混淆语言和其可以访问的API。 在浏览器中,API是DOM期间。
在服务器上,API是使用Javascript作为脚本语言的任何软件。
NodeJS有一个API与DOM无关,而且,NodeJS javascript并不总是与在浏览器上运行的javascript兼容。
MongoDB(使用Javascript作为脚本语言的数据库)不支持DOM API或nodeJS API,但拥有自己的API。
Fireworks(Adobe)也使用javascript作为脚本语言,其API与其他“可用”API无关。
Dreamweaver(Adobe)使用具有其他Adobe产品不兼容的API的javascript。
如果想了解Javascript语言,请阅读ECMAScript(官方名称)规范。Javascript是一种非常简单的语言。
因此,当您找到一个框架/库/任何内容时,只需检查库要使用的上下文即可。如果想分类库,则必须首先了解其使用的上下文。
在客户端,可以有纯Javascript库(例如处理Javascript对象的underscore),处理DOM(jQuery,任何使用AJAX的框架,因为AJAX是DOM的一部分,因此大多数MVC / MVP / MVVM框架),或同时处理两者。
然后还有编译成Javascript的语言(typescript,coffeescript,dart,haxe ...),这意味着您以一种语言编程,编译源代码,最终得到一些javascript。

谢谢。到目前为止,我对JavaScript并不是很熟悉,看到所有这些新的Web技术,我感到有些震惊。 - Saurabh Goel
再次强调,JavaScript只是另一层脚本语言,它的底层是C++代码。例如,NodeJS API和WebKit中的DOM都是如此。因此,大多数情况下API调用直接映射到C++函数。你可以查看WebKit源代码,了解所有这些东西是如何工作的,非常有趣。JavaScript实际上只是一个很薄的层,没有什么花哨的东西。 - mpm
现在,在运行新版本的Safari时,JavaScript直接转换为机器码....http://en.wikipedia.org/wiki/WebKit#JavaScriptCore - user1637281

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接