(我知道其他人问了一个类似的问题,它被关闭为'议论',但我真的很有兴趣理解围绕这个问题的争论.)
我非常了解JavaScript.我已经专业写了多年了.我已经内化了很多跨浏览器的不兼容性和粗略感,知道DOM操作就像我的手背,已经与业内一些最好的Web开发人员合作并获得了很多他们的魔力.
我一直在查看jQuery.我理解javascript库的意义(我写了多少次动画,getElementsByClass和hide/show函数?).但说实话,学习一种并不复杂的全新语法似乎是浪费时间.看起来我正在抨击墙壁来学习一个全新的JavaScript接口.
我在技术上不是工程师,所以也许我错过了什么.有人可以拼出jQuery的权衡吗?学习和理解jQuery语法真的比学习JavaScript更快吗?
在本土/手写代码上使用框架有一些很大的好处:
抽象.我相信你很自豪你已经把足够多的JS用来从头开始编写动画.你应该!然而,从自己身上抽象出常见的功能实际上是非常自由的.您只需调用该方法并知道将执行内部并执行良好.即使你自己编写低级别的东西非常快,现在仍然花费你的时间而不是解决今天的问题.
共同语言.使用通用框架就像说一种通用语言.您可以非常轻松地与其他开发人员协作,每个开发人员都可以在没有摩擦的情况下从其他地方开始.(与进入使用本地库的应用程序相比,jQuery可以做的事情.)
专家.从事jQuery的人都是JavaScript 神.我真的,非常擅长JavaScript,你可能也是,但正常的好和jQuery之间有很大的区别.一群精力充沛的人正在不断地研究一小部分常见功能 - 调整它,调整它,增强它以使其尽可能最好.这代表了大量的工时,无论我们有多好,像你或我这样的人根本无法复制.如果你是作为jQuery的家伙,好,你只能通过自己的天赋与他们的结合,并促进了jQuery的代码库中受益.这是一个疯狂的人才大熔炉.
我在技术上不是工程师,所以也许我错过了什么.有人可以拼出jQuery的权衡吗?学习和理解jQuery语法真的比学习JavaScript更快吗?
jQuery不仅仅是Javascript的"另一个接口".它允许您以比相应的Javascript实现更紧凑和更简洁的方式表达自己.与此同时,它更清晰,更强大.具体而言,您获得的好处包括:
表现力.jQuery本质上是一个用于DOM操作和查询的DSL.这种特异性是其实用性和有效性的主要来源.
跨浏览器.在很大程度上,jQuery是"一次编写,随处运行".即使在2009年,对于基于网络的平台来说,这仍然是一个令人惊讶的罕见壮举.知道你不必浪费时间调试IE6上的模糊问题(好吧,大多数时候),这是令人欣慰和放心的.
高度完整的文档.作为一名开发人员,我奖励那些花时间详细说明所有移动部件应该做什么的API和框架.没有什么比知道(1)事情足够稳定以至于写作文档不是试图击中移动目标而且(2)事情足够有用以至于他们吸引了足够多的人来充分充实文档.
总之,Javascript和jQuery之间的区别类似于汇编和高阶编程语言之间的差异.虽然它们在技术上既是"机器语言的接口"又可以做类似的事情,但后者被认为更强大,因为它代表事物并迅速发展是多么容易.