【问题标题】:Difference between jQuery vs. AngularJS vs. Node.js [closed]jQuery、AngularJS 和 Node.js 之间的区别 [关闭]
【发布时间】:2017-05-05 04:22:45
【问题描述】:

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

HTML - 网站布局

CSS - 让它看起来很漂亮

JavaScript - 功能

那么jQueryAngularJSNode.js是什么?

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

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

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

【问题讨论】:

  • “库”基本上只是其他人为您编写和测试的有用函数的集合 - jQuery 是 JavaScript 函数的集合。 “框架”是一种抽象,其中为您编写了常见的应用程序结构代码,您可以根据特定应用程序的需要覆盖其中的一部分。 NodeJS 是一种工具,可让您在浏览器以外的地方运行 JavaScript(通常在 Web 服务器上,而不是 Java、DotNET 或 PHP 或其他任何地方)。
  • 你会没事的。你知道为什么?因为你是说英语的。已经有很多东西适合你了。你只需要花时间学习它。在我的国家,英语是一个大问题。我认识很多人,因为英语不好而苦苦学习编程(很多人已经放弃并换了其他工作)。不过,正如我所说,这需要您花费很多时间。
  • 另见this question

标签: javascript jquery html angularjs node.js


【解决方案1】:

这就是它们越来越受欢迎的原因:

jQuery

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

AngularJS

  • 双向数据绑定:虽然你可以写一个简单的双向数据绑定 jQuery 中的数据绑定事件,JavaScript MVC 库提供了更多 将模型连接到视图的声明式(使用 HTML)方式。
  • 非常适合 SPA (single-page applications):AngularJS 等库, Aurelia、Ember.jsMeteor 为您提供所有管道 而不是全部用 jQuery 编写

Node.js

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

【讨论】:

  • “5 行 jQuery 代码相当于 25 行常规 JavaScript 代码” - 取决于您要执行的操作。对于某些任务,差异很小,而对于其他任务,差异很大。 “这意味着更小的文件和更快的网页加载速度。” - 除了 jQuery 为您省去自己编写的代码之外,所有这些都包含在 jQuery 文件中,该文件也必须下载到浏览器中。所以总的代码量可能更多。
  • 这些文件是在文档加载时加载的。因为最好的做法是在加载 DOM 之前不使用 js。它们不会影响您的点击或悬停事件的执行速度
  • 在您的回答中您说“加载速度更快”。这不是真的,或者肯定不是普遍正确的。 “在文档加载时”加载的文件仍然必须下载,并且(取决于页面)必须先下载,然后用户才能与页面进行有意义的交互。 (注意:我并不是说 jQuery 是一件坏事,只是你的描述充其量是误导性的。)
  • 好的..如果你这么认为我会删除更快的加载
  • 我可以在同一个程序中编写 JQuery 和 javascript
【解决方案2】:

jQuery

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

AngularJS

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

Node.js

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

一般框架

前面的木匠类比中的框架就像是聘请了一个专业的建筑商团队来为您完成工作。你足够详细地描述这项工作,他们接手并实际完成它。因此,您的任务被简化为以正确的语言提出工作规范以供建设者团队理解,而不是自己完成工作。

AngularJS 就像室内设计团队和电动,而 Node.js 将是其他一切。过于简单化?可能是。但你要求一个简单的解释。

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

【讨论】:

    【解决方案3】:

    简单来说,

    • jQuery - 是一组用于操作 HTML 和 CSS 的 JavaScript 函数
    • AngularJS - 是一个帮助您组织 HTML 和 CSS 的 JavaScript 框架
    • Node.js- 是一个 JavaScript 运行时...有点像您的服务器或本地计算机上的浏览器,但没有所有浏览器渲染引擎和附加功能......它只是一个运行时

    库与框架的主要区别简单来说:
    框架强加了一定的架构,并期望应用程序遵循它的期望
    是一个集合低级构建块通常提供旨在解决非常具体问题的精细函数(即 jquery.post() 函数)*

    【讨论】:

      【解决方案4】:
      • 框架:这描述了如何你应该呈现你的代码的给定结构。非常像代码模板,以及一些帮助程序、构造函数等来解决/简化特定问题或使您的架构“有序”。例如,Backbone.js、RequireJS、Socket.IO。框架封装通用应用程序功能,允许开发人员专注于其应用程序独有的部分。

      • Library:是一个完整的工具包,它高度抽象了不同的层,如浏览器、DOM 模型等。作为一个很好的工具包,它提供了很多工具和整洁的东西来工作with,通常可以简化您的编码体验。例如 jQuery 和 MooTools

      查看here了解更多信息。

      【讨论】:

      • “库:是一个完整的工具包” - 注意如果它的目的是处理日期/时间数据,它可能是一个非常小的工具包。
      【解决方案5】:

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

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

      AngularJS 是用 JavaScript 编写的工具。

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

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

      我们经常在网络浏览器中运行 JavaScript。但就在几年前,这个叫做 Node.js 的东西出现了,它允许我们在浏览器之外轻松地运行 JavaScript。我喜欢将其视为“在浏览器之外运行 JavaScript 的程序”(这意味着......没有 HTML 或 CSS 可供查看)。

      【讨论】:

        【解决方案6】:

        jQuery 是一个库(客户端)

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

        它使 HTML 文档遍历和操作、事件处理、动画和Ajax 等事情变得更加简单,并提供了一个易于使用的 API,适用于多种浏览器。

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

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

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

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

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

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

        库与框架

        库和框架之间的主要区别在于“倒置 控制”。当您从库中调用方法时,您可以控制。 但是有了框架,控制就倒过来了:框架调用 你。

        图书馆

        在编写 Web 应用程序时有用的函数集合。您的代码负责并在认为合适时调用库。例如,jQuery。

        框架

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-03-24
          • 2011-10-07
          • 2013-01-04
          • 1970-01-01
          • 2013-03-05
          • 1970-01-01
          • 2016-04-22
          • 2011-06-24
          相关资源
          最近更新 更多