文章的原由,也是在群内交流是回答一个小伙的问题,一扯就停不下来,但因为我的知识面覆盖有限,自身基础又不够扎实,仅供参考:javascript
问这个问题以前,我我的建议先搞清什么是jquery,什么是js?
jquery的优势:他是经常使用的js工具方法的一堆封装,他在必定程度上加快前端开发的速度,会缩短项目开发周期,会减小不少代码。
缺点:由于jquery内部作了不少细节的处理,固然最终目的是为了方便的调用。可是有些初学者误觉得,js的原本面貌就是这个样子。用Jquery去描述业务场景,而不是试图用代码逻辑来解决问题。因此不少人就此对jquery形成依赖。不少提问的时候问,这个问题用jquery怎么解决。
为何他可以像如今如此受欢迎,成为一种事实的标准,是由于他的封装充分考虑了开发者的习惯,在尽量大的角度来方便开发者调用与二次开发,这是他的一个优势之一。具体体如今,类工厂链式方式的调用,好比:
$().show().animate(),好比set,get的统一参数处理。$().css('width') $().css({ width : 200 });
并且在早期版本兼容了低版本ie的不少bug,使开发的注意力真正的关注到逻辑与数据上来,而不是整天解决兼容问题。
其它优势不一一等等。
至于如何使用好jquery,jquery提供的方便快捷封装在整个前端开发流程占多大的比例?为何咱们必定要建议先学js,在学习其它框架,这是咱们要搞清楚的。
1. 其实如何使用好jquery,取决于原生js的基础,什么是原生js的基础:
好比:js语句后面到底用不用加分号,不用加分号时在哪一个地方有坑?
js里边单双引号是否有区别,他的标识名命名规则是怎么样的,为何prototype与jquery都取$为他的工厂函数标志?若是你未来写一个,还有没有其它符号可用?
js里边保留字,关键字,有哪些?each与普通的for循环有多大的区别,他的好处在哪里,他的坏处在哪里,咱们何时该用他,何时不应用他,等等。
还有高级的,如何实现一个类的继承,若是用jquery方便的继承,什么闭包,闭包的优缺点,什么是事件代理,代理的优缺点。等等
上面的这些知识,在任何一个jquery相关书籍里边提的很少,而这些偏偏是一个js初学者必须掌握的。
1.JavaScript数组
2.JavaScript 函数基础
3.Javascript 运算符
4.JavaScript 流程控制
5.JavaScript 正则表达式
6.JavaScript 变量
7.JavaScript 字符串函数
8.DOM 基本操做
2. jquery在整个开发过程当中充当了一个方便操做dom的工具方法集合,而前端开发除了操做经常使用的dom以外,还须要操做页面的交互数据,模块化开发,工程师发布等等。夸张点说:jquery只是前端开发中的一个部分,他没有任何一处能力彻底取代原生js。并且咱们须要了解的还有不少,具体见下文。
前面从我的的角度介绍了一下什么是jquery,而后什么是js,百度不少,不一一介绍。
3. 只有在学好原生js的基础上,才能不少的学习jquery或其它框架。由于jquery与其它框架出现的初衷就是加快js开发,粗暴的理解,他对经常使用的js开发函数进行了封装,因此js功底扎实,基本看api及说明就能很快的入手,这也是jquery及其它框架欢迎的根本。
而后我的建议:先学原生js,再学jquery,而后有空学习jquery源码,才能更好的使用jquery。
而后问题来了,除了jquery以外还有什么值得学习的主流js框架?
jquery 主要战场仍是在dom操做这块,顺带封装了ajax或其它的经常使用方法。
yui虽然据说中止开发了,但他的代码思想与那些yahoo jser付出,努力的结晶是值得咱们学习与默拜的。
除了jquery以外,ext是一个巅峰,须要了解一下。他是初期企业级UI框架解决的一个鼻祖,从必定程度上解决了当时企业级应用的复杂界面交互,可是后来因为界面风格的单一化或自己一些性能问题,而被一些开发者弃用。
其它类ext的好比:
easyui, lightui,
j-ui, 这几个,并无真正意义上颠覆或超越ext,但在天朝本地化或语言或自身业务模式上有了必定的微创新或发展。
因为随着前端交互或数据的提升,对前端的依赖也是愈来愈大,这样前端的代码也是愈来愈多,这样的场景下就须要一个能解决代码块与块之间的调用,多块的代码加载,等等这些问题的框架出现。这时候requirejs,seajs填补了这2个空白。
而后核心的模块解决了,块与块的问题解决了,就剩下打包发布了,最近业界有这三个东西作这方面的工做。
又随着前端代码的愈来愈复杂,不得不出现了javascript mvc的解决方案:
最后:
正是这些好用的很差用的,好玩的很差玩的,构建了这几年来前端五彩缤纷的世界,不管从那一处下手,都能找到好玩的一处。也是正由于如此,因此有不少新人加入这个行业的缘由或动力。因此,坚持就是胜利,我为个人选择努力,我为个人努力坚持,我为个人坚持一直在期待。
前端开发qq群:159758989 ,禁止闲聊,非喜勿进~!css