【问题标题】:Is jquery a **normal** library to javascript the same way Math is a library to c++, python or even js?jquery 是 **normal** 的 javascript 库,就像 Math 是 c++、python 甚至 js 的库一样吗?
【发布时间】:2017-08-30 16:50:03
【问题描述】:

我是 Web 开发的新手,我正在探索 javascript 及其所有功能。我目前正在学习 jQuery,这让我想知道:“真正 是什么库?”。

从一些so/internet 搜索中,我了解到jQuery 一个库,尽管有些人也认为它是一个框架,因为它帮助/迫使你改变编码js 的方式。

对我而言,库是一组函数和类,可在特定方面帮助程序员。

据我了解,jQuery 似乎不仅仅添加与其他 javascript 库(例如数学)或什至其他 jQuery 插件(如数据表等)相反的函数或类...

在我看来,jQuery 在它的基础上看起来像是另一种呈现 js 代码的方式。

所以总结一下我的问题是:

  • jQuery 是像 Math 一样用于 c++、python 甚至 js 的“普通”库吗?
  • js引擎如何理解jQuery? (某种编译?)
  • 只要有 jQuery.js 文件,每个 js 引擎都能理解 jQuery,或者引擎中已经嵌入了 jQuery 的东西。

我还看到了这个非常有趣的帖子,发布在 Is a jQuery compiler possible?,但它让我更加模糊了库和 jQuery 之间的界限。

任何关于如何结合 js/jquery 的提示或链接都会有所帮助!

【问题讨论】:

  • 在我看来,jQuery 只是让处理 dom 变得更容易,它并没有真正为 JavaScript 添加额外的功能
  • What is jQuery? jQuery 是一个快速、小型且功能丰富的 JavaScript 库。

标签: javascript jquery libraries javascript-engine


【解决方案1】:

jQuery 是像 Math 一样用于 c++、python 甚至 js 的“普通”库吗?

是的。它只是函数等的集合。

js引擎是如何理解jQuery的? (某种编译?)

jQuery 只是使用浏览器的标准功能(DOM 等)用 JavaScript 编写的代码。 (好吧,还有一些非标准的,它会针对浏览器特性进行功能测试。)

只要有 jQuery.js 文件,每个 js 引擎都可以理解 jQuery,或者引擎中已经嵌入了 jQuery 的东西。

jQuery 是为浏览器环境设计的,因此在没有额外依赖项(DOM 库等)的情况下,它无法在非浏览器环境中正常工作。


为免生疑问:没有 jQuery 可以直接使用 JavaScript 的标准库、DOM API 和其他浏览器 API,您可以使用 jQuery 做任何事情。 jQuery 所做的只是为进行 DOM 操作提供备用 API,提供一些实用功能,并定义一种标准方式来添加特性以扩展 jQuery 的更多功能(例如,“jQuery 插件”)。

为了完整性:

  • jQuery 不是一种语言,尽管它是一种常见的误解。你不会做“在 jQuery 中”或“在 JavaScript 中”的事情。正确的对比是“with jQuery”或“with the DOM”(或“without jQuery”)。
  • 虽然 jQuery 是迄今为止最成功的库,但也有其他库也填补了同样的“使 DOM 变得更容易”的利基。
  • 处理基于浏览器的界面有完全不同的方法,从库(如 KnockoutJS 和许多其他)到轻(ish)框架(如 React 和其他)到完整框架(如 AngularJS)的一系列项目提供和许多其他人)。

【讨论】:

  • 我想这与 c++ 太不同了,我无法理解 js 库可以将 $( "li" ).addClass( "bar" ); 之类的功能添加为 function。我明白我错在哪里了。谢谢!
  • @m.nachury:我敢打赌是$ 让你绊倒了。在 JavaScript 中,与 C++ 不同,$ 是一个有效的标识符,就像 Afoo。 jQuery 没有添加任何新语法,它只是 JavaScript 代码。在您的示例中,您只是调用一个普通的日常函数(您将其引用为$),传入一个字符串,然后在它返回的对象上使用一个方法。除了 $ 之外,您可以在 C++ 中通过定义一个函数来执行相同的操作,该函数返回一个带有方法的对象。
  • 是的,$ 让我感到困惑,我认为它是特定于 javascript 的。这改变了很多东西......
【解决方案2】:

当涉及到 jquery 它是一个库时,你如何理解一个库和一个框架非常简单,因为它不会添加任何额外的 jquery approch 你在 jquery 中看到的任何内容都存在于 javascript 中 jquery 所做的是简写你的代码和帮助你链接函数,这在 javascript 中不太可能,当涉及到插件时,它们都是 javascript 函数的一部分

【讨论】:

    猜你喜欢
    • 2011-03-14
    • 2016-10-25
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    • 2019-01-22
    相关资源
    最近更新 更多