我为什么要使用jQuery?

时间:2009-04-02 02:12:58

标签: javascript jquery

(据我所知,其他人问了一个类似的问题,它被关闭为'议论',但我真的很有兴趣理解这个问题。)

我非常了解JavaScript。我已经专业写了多年了。我已经内化了很多跨浏览器的不兼容性和粗略性,知道像我手上的DOM操作,已经与业内一些最好的Web开发人员合作。他们拾起了很多他们的魔力。

我一直在查看jQuery。我理解javascript库的意义(我写了多少次动画,getElementsByClass和hide / show函数?)。但说实话,学习一种并不复杂的全新语法似乎是浪费时间。看起来我正在抨击墙壁,以便学习一个全新的JavaScript接口。

我在技术上不是工程师,所以也许我错过了什么。有人可以拼出jQuery的权衡吗?学习和理解jQuery语法真的比学习JavaScript要快吗?

16 个答案:

答案 0 :(得分:30)

在本土/手写代码上使用框架有一些很大的好处:

  • <强>抽象即可。我相信你很自豪你已经把足够多的JS用来从头开始编写动画。你应该!然而,从自己身上抽象出常见的功能实际上是非常自由的。您只需调用该方法并知道将执行内部并执行良好。即使你自己编写低级别的东西非常快,现在仍然花费时间而不是解决今天的问题。

  • 通用语言。使用通用框架就像说一种通用语言。您可以非常轻松地与其他开发人员协作,每个开发人员都可以在没有摩擦的情况下从其他地方开始。 (与进入使用本地库的应用程序相比,jQuery可以做的事情。)

  • <强>专家即可。从事jQuery工作的人是JavaScript gods 。我真的,非常擅长JavaScript,你可能也是,但正常的好和jQuery之间有很大的区别。一群精力充沛的人正在不断地研究一小部分常见功能 - 调整它,调整它,增强它以使其尽可能最好。这代表了大量的工时,无论我们有多好,像你或我这样的人根本无法复制。如果你 和jQuery伙伴一样好,你只能通过将你的才能与他们的人才结合起来并为jQuery代码库做出贡献而受益。这是一个疯狂的人才大熔炉。

答案 1 :(得分:11)

  

我在技术上不是工程师,所以也许我错过了什么。有人可以拼出jQuery的权衡吗?学习和理解jQuery语法真的比学习JavaScript要快吗?

jQuery不仅仅是Javascript的“另一个界面”。它允许您以比相应的Javascript实现更紧凑和更简洁的方式表达自己。与此同时,它更清晰,更强大。具体而言,您获得的好处包括:

  • 表现力。 jQuery本质上是一个用于DOM操作和查询的DSL。这种特异性是其实用性和有效性的主要来源。

  • 跨浏览器。在很大程度上,jQuery是“一次编写,随处运行”。即使在2009年,对于基于网络的平台来说,这仍然是一个令人惊讶的罕见壮举。知道你不必浪费时间调试IE6上的模糊问题(好吧,大多数时候),这是令人欣慰和放心的。

  • 高度完整的文档。作为开发人员,我奖励API和框架,它们花时间详细说明了所有移动的部分应该做什么。没有什么比知道(1)事情足够稳定以至于写作文档不是试图击中移动目标和(2)事情足够有用以至于它们吸引了足够多的人来充分充实文档而更令人鼓舞。 / p>

总而言之,Javascript和jQuery之间的区别类似于汇编和高阶编程语言之间的差异。虽然它们在技术上既是“机器语言的接口”又可以做类似的事情,但后者被认为更强大,因为它代表事物并迅速发展是多么容易。

答案 2 :(得分:4)

如果不学习JavaScript,就无法学习jQuery,如果不是JavaScript专家,你就无法成为jQuery大师。

也就是说,使用jQuery做事比使用“裸机”JavaScript要快得多。而且,使用jQuery的方式比使用“裸机”JavaScript的方式更抽象。此外,jQuery语法非常基础,并且一点也不难学,尽管您对jQuery的思考方式与您对“裸机”JavaScript的思考方式有很大不同,但可以让您更快,更快地完成。

答案 3 :(得分:4)

社区支持

其他开发人员编写和测试代码,使您可以执行您根本没有时间做的事情。它不是做任何你不知道该怎么做的事情,而是关于快速,高效和高质量的事情(已经过测试)。

答案 4 :(得分:4)

从它的声音来看,你知道jQuery对DOM有很多相同的东西,而且我只能假设你多年来为自己构建了一个很好的DOM工具集,其中包含了所有这些知识。简而言之,不,您不需要使用jQuery。但是,我们其他一些人对DOM的了解并不多,而且jQuery会对竞争环境产生影响,因此我们可以继续为客户完成工作。

这并不是说你不应该学习 jQuery(而不是使用它)。你可能会收拾一些你不知道的东西。区别于其他DOM库(包括您自己的DOM库)的3个主要特征是:

  1. 内置支持CSS选择器语法,对查找元素很有用
  2. 对包装元素的进行操作的方法
  3. 链。 jQuery.prototype中的每个方法(带有“setter”行为)都返回this
  4. 就个人而言,1)和3)不保持高额溢价。但是2)对我来说是巨大的。我从未意识到,直到jQuery我的代码倾向于在一组节点而不是单个节点上运行(如果有人会问我,我会猜到相反的趋势)。 2)几乎消除了我的代码中的所有for循环(或.forEach或者我倾向于抽象它),这实际上是非常自由的。现在我注意到这是我的代码必须在某个元素上运行的罕见场合。

答案 5 :(得分:4)

我没有看到提到的一件事是该库被编写为在各种流行的浏览器和平台上跨浏览器工作:IE6 +,Firefox 2 +,Safari 3 +

仅凭这一点就足以使用jQuery编写自己的JavaScript并且必须自己担心跨浏览器问题。

答案 6 :(得分:3)

开发速度和代码周转。

答案 7 :(得分:3)

我在其他答案中没有提到的一件事是,最终,其他人将不得不维护您的代码。如果它都是自定义的,那么它们将比使用更标准的库时更粗略。如果您对此没有任何顾虑,并且您认为自己可能不需要任何真正灵活的jQuery模块,那么继续您正在做的事情。

答案 8 :(得分:3)

对我来说,有几个好处,如发展速度等。

但在一天结束时,归结为一件事: 它删除了大量可能耗费大量时间和资源的跨浏览器BS,因此我无需处理它

答案 9 :(得分:1)

jQuery允许您编写更简洁,更易于理解的代码。许多人使用它,因此有许多插件可以与它一起工作,最大限度地减少膨胀。您自己的个人图书馆可能不一样。

答案 10 :(得分:1)

如果你非常了解JavaScript,你也应该知道jQuery的语法与JavaScript的语法没有区别。

你可能指的是chaining成语(在jQuery中到处使用),这似乎使得它看起来与其他类型的代码非常不同。那么这是有原因的,这是因为它与DOM的运作方式非常吻合。

答案 11 :(得分:1)

如果您真的了解JavaScript,那么您将在一周的时间内使用jQuery快速运行。如果您还不了解JavaScript的方法,那么在顶部添加一个图层可能弊大于利。但那就像其他任何东西一样!

您将以更快的速度编写更好看,更容易理解的JavaScript,而且只需一次 - 而不是每个浏览器一次。下行?你将要使用另一个~50KB的JavaScript。这就是缓存的目的:)

答案 12 :(得分:1)

Jquery是设计师手中的javaScript。

就像在元素上编写CSS样式一样简单。

Jquery也是最容易理解,编写维护,添加插件。

答案 13 :(得分:1)

我正在为客户制作一个图库程序(现在在IE6和7中表现出莫名其妙的行为 - 惊喜,惊喜 - 但我发现当我从裸机Javascript切换到jQuery时,很多工作都得到了很多对我来说,它在编写Javascript时提供了DOM的CSS视图 - 这使得遍历和操作更加直观。而且,跨浏览器的兼容性和简洁性非常棒。

答案 14 :(得分:1)

如果jQuery很棒或太糟糕,那真的不重要。它现在是强大的JS库,用于大量页面,未来的浏览器将不得不容纳它或被视为自己的错误。


我不喜欢jQuery:我对它如何忽略其测试套件中的手机浏览器并不感到激动。它会被移植到手机上的各种页面上,但它并没有努力确保它在它们上运行良好。

答案 15 :(得分:0)

jQuery优雅地降级, 中的一个最快(不再是最快的):

http://mootools.net/slickspeed/

还有很多其他的框架,无论你选择哪种,你都可能不会出错,但我自己也使用jQuery,我肯定会推荐它。

:)