jQuery是一个伟大的库,它解决了很多开发难题。
它解决了dom api兼容的问题,使得dom操作更简便
它支持类似css选择器的方式来选择组件
支持批量的操作数组中的元素,也叫隐式迭代
支持链式操作,可以在一条语句中完成很复杂的逻辑
有易于使用的插件扩展机制
deffered的异步方案比promise更早。
英雄迟暮,唱衰jQuery的声音越来越大,很多公司开始弃用它,采用更新的技术。
以Github为例,Github前端团队经过数年的努力,逐步移除代码中的jQuery。当然,他们也没有使用其他库或者框架取代它,而是使用了标准的浏览器API。
jQuery真的过时了吗?
当然过时了
jQuery的核心功能,已经有了更好的替代品。
jQuery的DOM操作被Vue/React/Angular取代了,因为这些流行的框架,不需要操作DOM
而它引以为傲的动画功能,被CSS3干掉了
Axios等新库,功能更强,体积更小,同样取代了jQuery的ajax功能。
至于兼容IE,也几乎没有什么用了。令前端们头疼不已的IE6早已经被淘汰,2016年天猫甚至宣布不再支持IE8.虽然浏览器兼容的问题仍然存在,但早已经过了那个坑翻天的时代了。
从这几点说,jQuery确实过时了,这一两年,几乎就没有新的项目,会使用jQuery来开发,即便是有,也不是什么值得炫耀的事。
但要说jQuery被淘汰,现在还为时过早。至少这几年,仍然有它的用武之地,仍然是新人必须掌握的技能之一。
从市场的角度上看:
现在大部分的网站和应用,仍然基于jQuery,此后很长的一段时间,他们仍然需要用jQuery进行维护。
很多小型公司并没有全职的前端开发,通常他们的前端部分由后端负责。对于后端来说,jQuery是十分亲善友好的。
IE678仍然没有完全消失,jQuery仍然有用武之地。
从学习的角度上看:
就DOM库来说,jQuery仍然是老大哥,如果你需要操作DOM,jQuery依旧是最好的选择。
jQuery还能教你如何设计API,因为它的API实在太人性化了,很有借鉴学习的意义。而且jQuery的API风格依然流行。
比起流行的三大主流框架,jQuery的学习成本很低,很容易理解。
除了市场和学习的需求外,jQuery的源码仍然有很高的阅读学习价值。饥人谷教育CTO方应杭曾经这样说:
如果你完全理解jQuery源码,说明你
精通正则表达式
了解闭包
了解原型链
精通 DOM API
了解各种设计模式(事件、Promise、伪重载、装饰器模式等)
精通 DOM 事件
了解旧浏览器的各种特性(bug)
了解模块化
了解浏览器渲染原理
精通 AJAX了解 HTTP 请求
可以秒杀中国 80% 的前端。
很厉害了,但是除此之外你还需要
1 掌握 ES 6 所有特性
2 掌握 webpack 等命令行工具
3 学一套前端框架
所以很多人选择直接学后面这些,速成嘛~
我司宁愿招会前者的程序员。
不要重复造轮子,但不等于不要去学怎么造轮子。
同样,哪怕将来工作用不上一些库和框架,不代表不用去学习它们。更何况jQuery仍然没有被完全淘汰,仍有很多的应用场景。