jQuery中的优秀是否意味着JavaScript的优秀?

时间:2010-05-15 08:16:44

标签: javascript jquery

我在jQuery中非常高效,在我的公司的几个项目中实现它。但是,在阅读像node.js这样的内容时,我发现自己有点迷失。

我是否必须回到基础并学习JavaScript语言,或者我应该坚持使用jQuery?

我想问的另一件事:与使用jQuery编码相比,用纯JavaScript编写代码是否会提高性能?根据我自己的经验,在jQuery中编码繁重,复杂的动画组合似乎总是占用大量的计算机内存。

8 个答案:

答案 0 :(得分:17)

你应该在某种程度上理解正在发生什么。知道底层是什么并没有什么坏处,但有时候知道所有也不是最佳的,例如:.innerHTML是否一致?不完全,例如IE中的<select>。这是否意味着你需要知道每一个不一致?如果你让jQuery处理它,那就不行了。

人们说你需要在jQuery之前理解JavaScript,让我说我同意,但是这方面有限制,你不一定需要知道每个浏览器之间的怪异和不一致,例如为什么我们使用抽象层。

对我来说,这与说你需要在C#之前学习汇编,如果你知道发生了什么,如何引用内存,指针是什么没什么不同?我想是这样,你需要知道每一个细节吗?可能不是。如果每个新程序员都学习下面的每一层,我们永远不会进步,这就是为什么数学定理建立在其他已知的真实,同样的概念之上的原因。

能够信任您的抽象层。这总是如此吗?遗憾的是没有,但是jQuery在尽可能保持一致并且始终在不断改进方面做得非常好。更重要的是,社区在弥补不一致方面做得很好。


编辑:让我告诉你上面的所有内容,告诉你是否可以了解这样做(这适用于我书中的大部分抽象,而不仅仅是JavaScript),它将帮助您更好,更有效地进行编程。如果你知道幕后发生了什么,你可以更好地利用它。

答案 1 :(得分:4)

实际上,这很像苹果和橘子。 jQuery是很棒的库,但它专注于DOM操作。它对通用编码,原型继承,闭包,数据类型以及编程时必须处理的其他重要内容没有多大帮助。

node.js与DOM无关,所以它与jQuery非常正交,难怪你无法理解它。

但请注意,JavaScript的知识并不一定意味着您可以高效地使用每个JavaScript库。每个库都是一种语言的超集,一种特定于域的语言,以帮助构建库来解决的特定任务。您将始终必须首先了解DSL是否有效,但如果您熟悉JavaScript,则可以更容易理解任何给定库的内部。

答案 2 :(得分:3)

如果您只对应用程序编程(网站和应用程序)感兴趣,那么jQuery就足够了。如果您想开发JavaScript框架或库,那么必须熟练掌握JavaScript语言。

答案 3 :(得分:3)

  

jQuery中的优秀是否意味着在JavaScript方面表现出色?

没有。我强烈建议你学习基础知识,然后学习一些。

jQuery只是一个库。虽然高效,但精通图书馆提供的功能与擅长编写该库的语言不同。

我并不是说您需要知道所有按位操作都是converted to signed 32-bit integers in big-endian order ,但您确实需要了解closures等核心概念,如何正确使用附加事件处理程序,以及异步/面向事件的编程的基本概念。

如果您要将作业更改为使用ExtJs而不是jQuery的公司,该怎么办?理解语言的核心概念将使这些转换成为无问题的。

要考虑的另一件事是,对于每个库,总有一个它不支持的任务。依靠图书馆总是做繁重的工作最终会让你陷入困境。

  

与使用jQuery编码相比,纯JavaScript中的编码是否会提高性能?

图书馆通常旨在尽可能地针对他们所针对的使用领域。因此,在某些情况下可能会出现效率低下的情况,这些情况可能会在库外进行优化。

这完全取决于您对JavaScript,算法选择/创建/分析以及编程的熟练程度。当你开始关注自己尽可能高的表现时,你真的需要能够掌握一种语言的细节。 jQuery或者任何图书馆的“好”都可能无法帮助你解决这个问题(除非你深入了解并以特定于你的场景的方式实现他们的技术)。

答案 4 :(得分:1)

jQuery只是一个(非常)有用的函数列表,用JavaScript编写。

您只是在使用该库而不了解其背后的内容 以及如何运作。大多数时候你只需要20%-40%的jQuery 你的代码,其余的将是纯JavaScript,所以我鼓励你学习 基本。这些是开始的好地方:

答案 5 :(得分:1)

我对此有点模棱两可。了解真正的深层 JavaScript是一门伟大的艺术 - 当我们的一位常驻深度JavaScript专家来到桌面时,我总是保持沉默。然而,并不是每个人都需要那种深刻的知识 - 如果你专注于构建界面,那么很好地了解其中一个框架可能就是你所需要的一切,边缘情况非常少。

另一方面,至少了解JavaScript如何在幕后工作的基础知识只会是有益的。如果你有动力去研究它,我会说这样做。您不必成为基础JavaScript中的全部大师,而是基本了解如何在内部处理数据,如何处理事件,如何管理内存等等。

答案 6 :(得分:0)

jQuery是JavaScript的抽象层,因此大多数情况下,您将使用jQuery而不是原始JavaScript来完成所有操作。但是,至少为所需部分提供一些JavaScript知识总是一个好主意。

出于这个原因,如果您看到任何jQuery书籍,其中大多数都有关于“JavaScript基础知识”或“JavaScript for jQuery”的章节或索引。

答案 7 :(得分:0)

不一定,就像说Java中的好是字节代码一样好,因为它使用字节代码。