一个非常熟悉JavaScript的程序员,会用JQuery还是纯JavaScript来编写代码呢?
换句话说,JQuery只是为那些不太了解JavaScript的人准备的吗?
假设我们正在谈论创建“公司展示网站”,其中JavaScript主要用于动画效果。
一个非常熟悉JavaScript的程序员,会用JQuery还是纯JavaScript来编写代码呢?
换句话说,JQuery只是为那些不太了解JavaScript的人准备的吗?
假设我们正在谈论创建“公司展示网站”,其中JavaScript主要用于动画效果。
jQuery不是一种独立的编程语言,而是JavaScript库。无论你是否使用jQuery,它仍然是“纯JavaScript”。
JavaScript旨在用于函数式和面向对象的编程。对于任何非平凡的应用程序,好的程序员都可能利用这些工具来帮助编写干净、可维护和高效的代码。
当你将一组可以重复使用的函数/对象/类型等分组在一起时,你正在创建一个库——无论你是否给该库命名。任何好的程序员都知道要这样做以便重用源代码,提供方便/实用功能,并避免为常见任务反复编写相同的代码。
John Resig恰巧创建了一个优秀的DOM操作库,并在慷慨的开源许可下发布了它。该库推广了许多程序员喜欢的编程风格,因此变得非常流行。
我认为可以肯定地说,John Resig非常了解JavaScript,他肯定会使用jQuery。如果这不会反映出他的编程能力较差,那么为什么使用jQuery的其他人就应该被视为编程能力较差呢?
最后,一个好的开发人员不应该仅仅以他们自己编写的项目代码量为定义。如果你是一个孤狼黑客,喜欢自己构建所有内容,那很好。但是开发人员的质量应该反映在他们产生的最终结果的质量上。如果你自己构建了一个CMS,没有使用任何现有的库或框架或与任何人合作,但它是一堆乱麻代码,表现出紧密耦合并违反DRY原则,那么你完全不使用现有库编写所有代码的事实意义甚微。
我认为大多数客户可能更希望你利用适合工作的任何现成解决方案来完成项目、节省时间并产生更好的结果。
Jquery可以用更少的代码实现相同的效果(通常会稍微慢一些,但不会影响任何人),通常不需要声明临时变量。例如:
$('a').click (function () {/* blabla */ }).css ({/* some css here */});
在纯JavaScript中,这一行可以表达为:
var links = document.getElementsByTagName("a") // in modern browsers = document.querySelectorAll("a");
for(var i =links.length; i--;){
var l = links[i];
l.addEventListener("click", function(){ //bla bla},true);
l.style.someCssAtrribute = 'someValue'
//etc
}
我喜欢认为自己对JavaScript很熟悉,但在学习了JQuery之前却不喜欢使用它。有了JQuery,我可以更快地编写代码,让其他人更容易阅读和维护。你为什么不使用它呢?
jQuery并不是真正帮助你处理JavaScript的工具 - 它帮助你处理DOM操作、事件和Ajax请求等事项。要编写好的软件,你仍然需要对语言有很好的理解,但是jQuery和其他工具可以在创建可用应用程序方面提供巨大的帮助。
因此,对于你的问题,答案是“不,jQuery不仅适用于不了解JavaScript的人”。
在寻找JavaScript和jQuery之间的区别上并没有意义。jQuery是JavaScript中最高效的库之一,它使事情变得更加容易。但是说jQuery是为那些不熟悉JavaScript的人准备的是愚蠢的。如果你是JavaScript专家,你将成为那些能够有效使用jQuery的人之一。同时,如果你是JavaScript的初学者,但相信自己已经很好地掌握了如何使用jQuery,我建议你学习更多的JavaScript,因为jQuery会隐藏很多东西,有时候你可能无法识别你所犯的错误——即使是一个简单的jQuery语句也可能使用循环——所以在使用jQuery时要小心。这是关于性能和效率的问题,因此,如果你想使用jQuery编写无缺陷的代码,你应该了解JavaScript,只有这样你才能充分利用它。