jQuery与AngularJS与Node.js的区别

我刚开始web开发,到目前为止我知道:

HTML – 网站的布局

CSS – 让它看起来很漂亮

JavaScript – function

那么什么是jQuery , AngularJS和Node.js ?

经过快速search,我发现jQuery是一个“JavaScript库”,AngularJS是“基于JavaScript的开源前端Web应用框架”,而Node.js是“JavaScript运行时环境”。

他们似乎都与JavaScript相关,所以他们是新的语言? “框架/库”是什么意思?

一个简单的答案将不胜感激。 (我刚刚开始web编程,但我熟悉编程)。

jQuery是一个库 (客户端)

jQuery是一个快速,小巧,轻量级的“less写,多做”和function丰富的JavaScript库。

它使诸如HTML文档遍历和操纵,事件处理,animation和Ajax等事情变得简单得多,而且易于使用的API可以在多种浏览器中使用。

AngularJS是一个MVC框架 (客户端)

AngularJS是开发dynamicWeb应用程序的客户端JavaScript MVC框架。

它可以让你使用HTML作为你的模板语言,让你扩展HTML的语法来清晰简洁地expression你的应用程序的组件。 AngularJS的数据绑定和dependency injection消除了许多代码,否则你必须写。 这一切都发生在浏览器内,使其成为任何服务器技术的理想合作伙伴。 AngularJS最初是作为Google的一个项目启动的,但现在它是一个开源框架。

Node.js是一个平台和运行时环境 (服务器端)

Node.js是一个开源的跨平台运行时环境,用于开发基于Google Chrome的JavaScript引擎(V8引擎)的服务器端和networking应用程序。 Node.js应用程序是用JavaScript编写的,可以在OS X,Microsoft Windows和Linux上的Node.js运行时中运行。

Node.js还提供了丰富的各种JavaScript模块库,在很大程度上简化了使用Node.js的Web应用程序的开发。 Node.js使用事件驱动的非阻塞I / O模型,使其轻量且高效,非常适合跨分布式设备运行的数据密集型实时应用程序。

图书馆与框架

图书馆和框架之间的主要区别是“控制反转”。 当你从库中调用一个方法时,你就可以控制了。 但是对于一个框架,控制是相反的:框架调用你。

在这里输入图像说明

图书馆

编写Web应用程序时有用的一组函数。 你的代码负责,当它看起来合适的时候,它会调用图书馆。 例如,jQuery。

骨架

Web应用程序的特定实现,您的代码将填充细节。 框架是负责的,当它需要一些特定于应用程序的东西时,它会调用你的代码。 例如,AngularJS, Durandal , Ember.js等

简而言之,

  • jQuery – 是JavaScript函数的集合,用于处理HTML和CSS
  • AngularJS – 是一个JavaScript框架,可以帮助您组织HTML和CSS
  • Node.js-是一个JavaScript运行时间…有点像你的服务器或本地机器上的浏览器,但没有所有的浏览器渲染引擎和extras ..它只是一个运行时

图书馆与框架的主要区别在简单的话中:
框架强加了一定的架构,并希望应用程序能够遵循它的期望
是一个低级构造块的集合,通常提供粒度函数来解决非常具体的问题(即jquery.post()函数)*

jQuery的

jQuery是一个为你做很多事情的库。 它包含了许多方便的常用函数,因此您不必亲自编写此代码。 这与石器时代的木匠之间的区别,或者有一系列电动工具可供您使用。

AngularJS

AngularJS是一个框架,用于为交互式网站和Web应用程序构build前端graphics用户界面(GUI) 。 与Node.js一起使用时,它将形成强大的组合

Node.js的

Node是用于构build后端Web服务的框架,例如在后台为您提供数据的API REST端点。 您可以使用AngularJS将button和GUI元素连接到这些端点来构build丰富的数据驱动的Web应用程序和Web报告。 作为RESTful,这些服务会等待,直到前端发送请求(用户单击button),然后执行数据库查询或读取文件并将一些数据吐出,然后Web应用程序可以显示给用户。

一般的框架

早期的木匠比喻中的框架就像一个专业build造者团队为你做工作。 你详细描述了这份工作,然后他们接手并实际完成工作。 因此,你的任务就会减less到为build造者团队理解的正确语言的工作规范,而不是你自己做的工作。

AngularJS将会像电气一样成为室内devise团队的一员,而Node.js就是其他的一切。 过于简单? 也许。 但你要求一个简单的解释。

所以你可以把AngularJS和Node.js看作是对立的,但是它们可以在同一个应用程序或项目中一起使用。 他们填写不同的目的,但他们都使用JavaScript(和jQuery在一定程度上)来做到这一点。

这就是为什么他们日益受欢迎:

jQuery的

  • jquery代码相对较短。 有时候,只有五行jQuery代码相当于25行传统JavaScript代码(例如使用AJAX加载数据文件)。 这意味着更less的代码和更小的文件。
  • 大型库:与其他JavaScript库相比,jQuery使您可以执行大量的function。
  • 超级轻松使用Ajax:jQuery使您能够轻松开发Ajax模板,Ajax使您可以在页面上执行操作,而无需重新加载整个页面。

AngularJS

  • 双向数据绑定:虽然您可以在jQuery中编写简单的双向数据绑定事件,但JavaScript MVC库提供了更多的声明性(使用HTML)方式将模型连接到您的视图。
  • 非常适合SPA( 单页应用程序 ):像AngularJS,Aurelia, Ember.js和Meteor这样的库为您提供了所有的configuration,而不是将其全部写入jQuery

Node.js的

  • 速度很快:除了快速执行JavaScript之外,Node.js背后真正的魔力就是事件循环。 事件循环是一个单线程,可以asynchronous执行所有的I / O操作。 传统上,I / O操作要么同步运行(阻塞),要么通过产生并行线程来asynchronous运行来执行工作。
  • 实时简单:如果Node.js在许多并发连接方面performance出色,那么在多用户实时Web应用程序(如聊天和游戏)方面更胜一筹。 Node.js的事件循环负责多用户需求。

您使用HTML,CSS和JavaScript来创build交互式网站。

jQuery是用JavaScript编写的工具。

AngularJS是一个用JavaScript编写的工具。

React是用JavaScript编写的工具。

这些工具可以帮助您根据自己的规则pipe理HTML,CSS和JavaScript之间的交互。 一旦一个工具变得非常大,根据其特征,它可能会有一个像“library”或“framework”这样的名字。

我们经常在浏览器中运行JavaScript。 但是到了几年前,这个名为Node.js的东西就出现了,这让我们可以在浏览器之外轻松地运行JavaScript。 我喜欢把它看作是“在浏览器之外运行JavaScript的程序”(这意味着没有HTML或CSS可以查看)。

  • 框架 :这里描述了你应该如何展示你的代码的给定结构。 非常像一个代码模板,沿着一些助手,构造函数等来解决/简化一个特定的问题,或者把你的架构放在“有序”的位置。 例如, Backbone.js ,RequireJS, Socket.IO 。 框架封装了通用的应用程序function,使开发人员可以专注于应用程序所特有的部分。

  • :是一个高度抽象不同层次的完整工具包,比如浏览器,DOM模型等等。作为一个很好的工具包,它提供了许多工具和整洁的东西来处理,这通常简化了你的编码体验。 例子是jQuery和MooTools 。

在这里寻找更多的信息。