來源:xiaqo.com
随着 JavaScript 本身的完善,越来越多的人开始喜欢使用原生 JavaScript
开发代替各种库,其中不少人发出了用原生 JavaScript 代替 jQuery 的声音。这并不是什么坏事,但也不见得就是好事。如果你真的想把 jQuery 从前端依赖库中移除掉,我建议你慎重考虑。
首先 jQuery 是一个第三方库。库存在的价值之一在于它能极大地简化开发。一般情况下,第三方库都是由原生语言特性和基础 API 库实现的。因此,理论上来说,任何库第三方库都是可以用原生语言特性代替的,问题在于是否值得?
jQuery 的作用
引用一段 jQuery 官网的话:
jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers.
这一段话很谦虚的介绍了 jQuery 在处理 DOM 和跨浏览器方面做出的贡献。而事实上,这也正是我们选用 jQuery 的主要原因,并顺带使用了它带来的一些工具,比如数组工具,Deferred 等。
对于我来说,最常用的功能包括
在 DOM 树中进行查询
修改 DOM 树及 DOM 相关操作
事件处理
Ajax
Deferred 和 Promise
对象和数组处理
还有一个一直在用却很难在列清单时想到的——跨浏览器
到底是谁在替代谁?
上面提到的所有功能都能用原生代码来实现。从本质上来说,jQuery 就是用来代替原生实现,以达到减少代码,增强可读性的目的的——所以,到底是用 jQuery 代替原生代码,还是用原生代码代替 jQuery?这个先后因果关系可否搞明白?
我看到说用 querySelectorAll() 代替 $() 的时候,不禁在想,用 jQuery 一个字符就能解决的,为什么要写十六个字符&#