jQuery与AngularJS与Node.js之间的区别


106

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

HTML-网站布局

CSS-使它看起来很漂亮

JavaScript-功能

那么jQueryAngularJSNode.js是什么?

快速搜索后,我发现jQuery是“ JavaScript库”,AngularJS是“基于JavaScript的开源前端Web应用程序框架”,而Node.js是“ JavaScript运行时环境”。

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

一个简单的答案将不胜感激。(我只是开始进行Web编程,但是我对编程很熟悉)。


2
“库”基本上只是其他人为您编写和测试的有用功能的集合-jQuery是JavaScript函数的集合。“框架”是一种抽象形式,其中已为您编写了常见的应用程序结构代码,并且您可以根据特定应用程序的需要覆盖其中的某些位。NodeJS是一种工具,可让您在浏览器之外的其他位置(通常在Web服务器上,因此而不是Java或DotNET或PHP或其他任何版本)上运行JavaScript。
nnnnnn

3
你会好起来的。你知道为什么?因为你会说英语。已经有很多东西供您使用。您只需要花时间学习。在我国,英语是一个大问题。我认识很多人,他们在努力学习编程(很多人放弃了工作并转而从事其他工作),只是因为英语不好。不过,正如我所说,您仍然需要很多时间。
vothaison

另请参阅此问题
nnnnnn

Answers:


202

jQuery是一个库(客户端)

jQuery是一个快速,小巧,轻巧的“少写,多做”,功能丰富的JavaScript库。

借助易于使用的API(可在多种浏览器中使用),使HTML文档的遍历和操作,事件处理,动画和Ajax等事情变得更加简单。

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

AngularJS是用于开发动态Web应用程序的客户端JavaScript MVC框架。

它使您可以将HTML用作模板语言,并可以扩展HTML的语法以清晰,简洁地表达应用程序的组件。AngularJS的数据绑定和依赖注入使您无需编写许多代码。这一切都发生在浏览器中,使其成为任何服务器技术的理想合作伙伴。AngularJS最初是从Google的一个项目开始的,但是现在它是一个开源框架。

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

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

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

库与框架

库和框架之间的主要区别是“控制反转”。当您从库中调用方法时,就可以控制。但是,有了框架,控件就会被颠倒:框架会调用您。

在此处输入图片说明

图书馆

编写Web应用程序时有用的功能集合。您的代码由您负责,并在合适时调用库。例如,jQuery。

构架

Web应用程序的特定实现,您的代码将在其中填充详细信息。该框架负责,当需要特定于应用程序的内容时,它将调用您的代码。例如,AngularJS,DurandalEmber.js等。


27

简单来说

  • jQuery-是处理HTML和CSS的JavaScript函数的集合
  • AngularJS-是一个JavaScript框架,可帮助您组织HTML和CSS
  • Node.js-是一个JavaScript运行时...有点像服务器或本地计算机上的浏览器,但没有所有浏览器呈现引擎和其他功能。.它只是一个运行时

简单来说,库与框架的主要区别是:
框架强加了某些架构,并期望应用程序遵循其期望。
图书馆是一组低级构建块,它们通常提供旨在解决非常具体问题的粒度函数(即jquery.post()功能)*


17

jQuery的

jQuery是一个为您做很多事情的库。它包含许多方便的常用功能,因此您不必自己编写此代码。成为石器时代的木匠,或拥有一系列的电动工具供您使用,这是一种区别。

AngularJS

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

Node.js

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

总体框架

在较早的木匠类比中,框架就像签约一支专业的建筑商团队来为您完成工作。您对工作进行了足够详细的描述,然后他们接手并完成了工作。因此,您的任务减少为以正确的语言提出施工规范,以供建造团队理解,而不是自己完成。

AngularJS就像是电气的室内设计团队一样,Node.js就是其他一切。过于简化?也许。但是您要求一个简单的解释。

因此,您可以将AngularJS和Node.js视为对立面,但它们可以在同一应用程序或项目中一起使用。它们满足不同的目的,但是它们都使用JavaScript(在某种程度上使用jQuery)来实现。


7
  • 框架:这描述了如何呈现代码的给定结构。类似于代码模板,以及一些帮助程序,构造函数等,用于解决/简化特定问题或使您的体系结构“有序”。例如Backbone.js,RequireJS和Socket.IO。框架封装了通用的应用程序功能,使开发人员可以专注于其应用程序特有的部分。

  • :是一个完整的工具箱,它高度抽象了不同的层,例如浏览器,DOM模型等。它还是一个很好的工具箱,它提供了很多工具和精巧的东西供您使用,通常可以简化您的编码体验。例子是jQuery和MooTools

这里了解更多信息。


“库:是一个完整的工具箱” -注意,如果它的目的是仅处理日期/时间数据,则它可能是一个非常小的工具箱。
nnnnnn

7

这就是为什么他们越来越受欢迎的原因:

jQuery的

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

AngularJS

  • 双向数据绑定:虽然您可以在jQuery中编写一个简单的双向数据绑定事件,但是JavaScript MVC库提供了一种将模型连接到视图的更具声明性的方式(使用HTML)。
  • 非常适合SPA(单页应用程序):AngularJS,Aurelia,Ember.jsMeteor之类的库为您提供所有管道,而无需在jQuery中编写所有管道

Node.js

  • 快速:除了快速执行JavaScript外,Node.js的真正魔力是事件循环。事件循环是一个异步执行所有I / O操作的线程。传统上,I / O操作通过生成并行线程来执行工作来同步(阻塞)或异步运行。
  • 实时轻松:如果Node.js在许多并发连接方面表现出色,那么在多用户,实时Web应用程序(例如聊天和游戏)方面表现出色是有道理的。Node.js的事件循环可满足多用户需求。

2
“ 5行jQuery代码相当于25行常规JavaScript代码” -取决于您要执行的操作。对于某些任务,差异很小,对于其他任务,差异很大。“这意味着较小的文件和更快的网页加载速度。” -除了jQuery节省了您自己编写的代码之外,所有代码都包含在jQuery文件中,该文件也必须下载到浏览器中。因此,总代码量可能更多。
nnnnnn

这些文件是在文档加载时加载的。因为最佳做法是在加载DOM之前不要使用js。它们不会影响您的点击或悬停事件的执行速度
ab29007 '16

您在回答中说“加载速度更快”。这是不正确的,或者肯定不是普遍适用的。仍必须下载“在文档加载时”加载的文件,并且(取决于页面)必须下载,然后用户才能与页面进行有意义的交互。(注意:我并不是说jQuery根本不是一件坏事,只是您的描述充其量是误导性的。)
nnnnnn

好的..如果您认为这样的话,我会删除较快的加载时间
ab29007 '16

我可以写jQuery和在同一个程序的JavaScript
k个分裂X

6

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

jQuery是用JavaScript编写的工具。

AngularJS是用JavaScript编写的工具。

React是用JavaScript编写的工具。

这些工具可帮助您根据它们自己的规则管理HTML,CSS和JavaScript之间的交互。工具真正变大后,根据其特性,它可能会取一个“库”或“框架”之类的名称。

我们经常在网络浏览器中运行JavaScript。但是直到几年前,Node.js出现了,这使我们能够在浏览器之外轻松地运行JavaScript。我喜欢将其视为“在浏览器外部运行JavaScript的程序”(这意味着……没有HTML或CSS可供查看)。

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.