我学会了jQuery,我应该回去学习"正确的javascript"吗?

Bal*_*ark 13 javascript jquery mootools frameworks

我主要是服务器端开发人员,专业地使用PHP.对于javascript我总是使用一个框架(jQuery/mootools),这对我来说是一个专业的劣势吗?我应该花时间学习直接的javascript,还是大多数开发人员转移到框架?

谢谢.

Ada*_*ire 25

这取决于.如果你在询问DOM操作,它会在浏览器中产生许多怪癖和不一致.虽然知道这些可能会很好,但大多数时候你不必担心你的框架会担心它们.自己学习一切都是有益的,但很难.

至于除了直接JS之外的所有东西,比如闭包,私有函数,对象语法,原型等,你一定要学习这些,因为它们在框架中和没有它一样适用.从根本上说,您仍然在JS中进行编码,只需要在一些常见任务的框架的帮助下.


Mar*_*ham 14

没有.

移植到框架是由于多年来对浏览器依赖性的挫败感,并且完全不喜欢Javascript设计中的许多原始决策.请注意,你仍然在使用Javascript,所以说"学习Javascript"并不是"公平地探索现在由JQuery处理的Javascript领域".

关于你对未来雇主的吸引力,我很确定JQuery在简历上列出比Javascript更好的技能(我知道它会在我们的商店中).如果你考虑一下,那些关心足够好的客户端开发的雇主会期望潜在的员工拥有像JQuery这样的工具的经验.那些不关心客户端开发的人根本不会将客户端技能(包括Javascript)作为优先事项.实际上,如果您打算花时间了解客户端的更多信息,我建议您学习另一个客户端框架(例如YUI或Ext).它不仅会让你更有价值,而且由于框架的不同,它几乎肯定会需要一定程度的接触Javascript的习语.

更新 - Rohan在学习Javascript时提出了一个很好的观点:它可以帮助您在JQuery中更有效地编写代码.我在摘要中同意,但我个人有点犹豫是否要在这方面投入太多精力.作为一名长期(长期)开发人员,我学会了专注于投入时间和精力的回报.世界上有很多值得学习的东西,只有这么多时间来学习它.例如,我花在学习如何编写ISAPI dll的时间与投资相比支付的费用很少.

更新2 - 有些人认为JQuery比原始Javascript慢.有什么新东西吗?关于"原始"开发与框架的相同论点已持续了数十年!

在这种情况下,它尤其令人困惑.根据我的经验,采用客户端框架的人实际上最终会提供客户端功能.由于在浏览器,Javascript特性等处理DOM不兼容性的固有困难,那些不倾向于被锁定在服务器端解决方案中的那些因此,推荐Javascript"for speed"错过了整个动态,其中纯Javascript站点非常可能会更慢,因为开发人员最终会回到服务器端代码只是为了保持工作效率.


Cha*_*ion 10

是.

jQuery执行任务的速度往往较慢.如果您知道如何在普通JS中执行此操作,则可以返回并优化页面的较慢部分.

  • 我认为你在这里是一个优势案例.IE6具有可怕的javascript性能,因此优化它具有高优先级.此外,您不需要跨浏览器兼容性,因此优势无效.在一般情况下,jQuery/MooTools更可取,有时原始JS更好.我通常把它与C < - > C#/ ruby​​/python差异进行比较.C可能更快,但我提到的其他人通常更安全/更快. (8认同)
  • 但是这个函数是否无法容纳具有非标准实现的浏览器,例如getElementsByTagName?当然这是jQuery的重点 - 它是一个抽象层. (3认同)
  • 坚持 - 首先,对于大多数(以客户为中心的,明显的)任务,客户端开发已经比服务器端快一个数量级.其次,你正在使用*frames*例子?没有人知道仍然有框架的程序和JQuery缺乏对它们的支持应该绝对不足为奇.我提前道歉是因为讽刺但是我无法抗拒:"是的,学习原始的Javascript.当你完成后,我们会给你在Cobol家伙旁边的隔间" (3认同)
  • @Chaos - 我同意速度很重要,但更重要的是它**可以** - 在每个浏览器中,每次都有."我们没有为Firefox编写代码"也给人留下了非常糟糕的印象.也许不是在你的情况下,但在大多数情况下. (3认同)

Roh*_*bhu 5

其实,是.经过几年的jQuery之后,学习JS是一件好事,这样你就知道jQuery设置的抽象层背后会发生什么.它将帮助您更好地使用jQuery或您可能转移到的任何其他框架.如果出现这种需要,它还可以帮助您修改这些框架.


Nat*_*ong 5

不是它重叠的地方

你已经需要知道一些"纯粹的"javascript,比如字符串和数组操作,对吗?坚持这些东西可能会很好.

并且可能存在特定情况 - 比如制作bookmarklet - 知道如何使用直接JS来查找DOM元素会很有用.

但是对于大多数生产代码来说,一个好的JS框架要好得多,我认为使用纯JS是愚蠢的.

了解您可以实际使用的内容,但如果它纯粹是学术性的,我会说花时间学习另一种真正相关的技能.