jquery 是 javascript 的**普通**库,就像 Math 是 c++、python 甚至 js 的库一样吗?

Is jquery a **normal** library to javascript the same way Math is a library to c++, python or even js?

我是 Web 开发新手,正在探索 javascript 及其所有功能。我目前正在学习 jQuery 这让我想知道:"what really is a library ?".

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

对我来说,库是一组函数和类在特定点上帮助程序员。

据我了解,jQuery 似乎不只是添加功能或 类 与其他 javascript 库相反,例如数学甚至其他 jQuery 数据表等插件...

对我来说,jQuery 在其基础上看起来只是另一种呈现 js 代码的方式。

总结一下我的问题是:

我也在 Is a jQuery compiler possible? 上看了这个非常有趣的 post,但它让我更加模糊了图书馆和 jQuery 之间的界限。

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

Is jQuery a "normal" library like Math for c++, python or even js?

是的。就是函数的集合等等

How does the js engine understand jQuery? (some sort of compilation ?)

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

Can every js engine understand jQuery as long as they have the jQuery.js file, or is there something already embedded inside the engine for jQuery.

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


为避免疑义:没有 jQuery 就无法使用 jQuery,使用 JavaScript 的标准库,[=43] =] API,其他浏览器直接 APIs。 jQuery 所做的只是提供一个替代 API 来进行 DOM 操作,提供一些实用功能,并定义一种标准方法来添加功能以扩展 jQuery 以提供更多功能(例如, "jQuery plugins").

为了完整起见:

  • jQuery 不是一种语言,尽管这是一种常见的误解。你没有做某事 "in jQuery" 或 "in JavaScript." 正确的对比是 "with jQuery" 或 "with the DOM" (或 "without jQuery")。
  • 尽管 jQuery 是目前为止最成功的库,但还有其他库也填补了相同类型的 "make the DOM easier" 利基市场。
  • 处理基于浏览器的界面有完全不同的方法,由一系列项目提供,从库(如 KnockoutJS 和许多其他)到轻型(ish)框架(如 React 和其他)到完整的框架(像 AngularJS 和许多其他人)。

当谈到 jquery 它是一个库时,你如何理解一个库和框架非常简单,因为它不会添加任何额外的 jquery 方法,无论你在 [=15= 中看到什么] 存在于 javascript 中 jquery 所做的是 shorthand 您的代码并帮助您链接函数,这在 javascript 中是不可能的,当涉及到插件时,它们都是也是 javascript 函数的一部分