jquery的优点和缺点,如何使用好jquery

jquery的优点:他是常用的js工具方法的一堆封装,他在一定程度上加快前端开发的速度,会缩短项目开发周期,会减少很多代码。

缺点:因为jquery内部做了很多细节的处理,当然最终目的是为了方便的调用。但是有些初学者误以为,js的本来面貌就是这个样子。用Jquery去描述业务场景,而不是试图用代码逻辑来解决问题。所以很多人就此对jquery造成依赖。很多提问的时候问,这个问题用jquery怎么解决。

为什么他能够像现在如此受欢迎,成为一种事实的标准,是因为他的封装充分考虑了开发者的习惯,在尽可能大的角度来方便开发者调用与二次开发,这是他的一个优点之一。具体体现在,类工厂链式方式的调用,比如:

( ) . s h o w ( ) . a n i m a t e ( ) , 比 如 s e t , g e t 的 统 一 参 数 处 理 。 ().show().animate(),比如set,get的统一参数处理。 ().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初学者必须掌握的。

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或其它的常用方法。

其它经典怀旧的几个有空的时候可以了解一下他们的源码,mootools, prototype.是他们启发了js向工程化,团队化,协作化方向发展的转变,

yui虽然听说停止开发了,但他的代码思想与那些yahoo jser付出,努力的结晶是值得我们学习与默拜的。

除了jquery之外,ext是一个巅峰,需要了解一下。他是初期企业级UI框架解决的一个鼻祖,从一定程度上解决了当时企业级应用的复杂界面交互,但是后来由于界面风格的单一化或本身一些性能问题,而被一些开发者弃用。

其它类ext的比如:easyui, lightui, j-ui, 这几个,并没有真正意义上颠覆或超越ext,但在天朝本地化或语言或自身业务模式上有了一定的微创新或发展。

由于随着前端交互或数据的提高,对前端的依赖也是越来越大,这样前端的代码也是越来越多,这样的场景下就需要一个能解决代码块与块之间的调用,多块的代码加载,等等这些问题的框架出现。这时候requirejs,seajs填补了这2个空白。

然后核心的模块解决了,块与块的问题解决了,就剩下打包发布了,最近业界有这三个东西做这方面的工作。

grunt, gulp,fis。

又随着前端代码的越来越复杂,不得不出现了javascript mv*的解决方案:

angularjs, React 中文, vuejs, backbone, 有空的时候了解一下。

移动端的几个需要了解一下,jq mobile, zepto.knockout,swipe,iscroll

还有一些剑走偏峰的作品比如:three.js,d3.js, famo.us,

还有一些国内jser的贡献,团队或个人的都有。比如qwrap, avalon,还有一个百度的七巧板,腾讯的jx

https://www.jianshu.com/p/fa1d205e5ef7

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值