javascript学习顺序:先系统学习jQuery再学习基本JavaScript是否会相对快捷?为什么?

个人情况:

半年前端学习积累:

  • html,css基本熟练
  • javascript能看懂,会写简单的轮播图代码。会改大部分的js特效。

问题背景:

想要利用暑假两个月的时间系统学习javascript,目的是熟练打好js基础。咨询老师,身边的同学之后,给出的建议是先从jQuery入手,熟练jQuery之后再学习原生js。但各大论坛给出的建议均是先从js入手。

自己的体验:

  • 在线课堂分别听了jQuery基础和JS基础。都能跟上进度且理解。没有出现其他论坛大牛说的不懂JS就读不懂jQuery代码的问题。

  • 依然担心jQuery熟悉之后再学习JS会很难有更大的提高,形成粗糙的代码风格。

问题总结:

请教各位前辈,您学习js的顺序是怎样的?您觉得以我的个人情况,应该如何安排学习进度?

阅读 27.1k
19 个回答

首先我必须非常严肃地指出

“原生”JS和DOM和浏览器半毛钱关系也没有

我认为,搞清楚JS,jQuery,DOM三者的关系是至关重要的,搞清楚以后无论正着学倒着学跳着学都没问题

  • Javascript:最流行的原型式语言,弱类型,基于原型的面向对象,函数作为一等对象可传递可存储。是一门历史比较古老但一直在焕发第N春的语言。常见的运行时有:几乎所有浏览器/NodeJS/PhantomJS/CoughDB/MongoDB等
  • DOM:浏览器对HTML文档的抽象模型,以树形结构为基础,提供了各种属性、内容、插入移除、事件等方面的API。这些API以JS语言的形式暴露在浏览器的JS运行环境中
    - BOM:浏览器对浏览器自身的抽象模型,包括历史、当前位置、窗口、屏幕等的API,同样暴露在浏览器的JS运行环境中
  • jQuery:最流行的Javascript DOM/BOM操作类库,主要致力于消除了不同浏览器之前DOM和BOM的差异性,并提供了优雅的链式API、强大的选择器和便利的扩展结构。

搞清楚jQuery只是DOM的封装,DOM作为网页的操作接口,只是暴露成JS语言的形式。直接学jQuery可以最快上手实际项目,避开jQ学裸DOM可以在比如移动开发等极端场景游刃有余,并且可以强化对jQuery的理解,避免一些坑。而JS本身是他们两者的基础。

结合我个人的经验,其实没什么好纠结的。如果你想在前端上精深,不可能不学好原生;而即使你已经很厉害了,在项目中使用jquery也能帮你省下大把时间。

我建议结合你的环境来选择。比如,你接下来可能要做一个实际项目,那你最好从jquery入手,它能帮你解决很多兼容性问题,减少代码量,开发过程当中你有时间去学习一些同样重要但很少被人提及的东西:

  1. 版本管理
  2. 测试
  3. 开发与部署

jquery用着用着就不够用了,你可能会需要插件,继而向插件社区寻求帮助,然后学会自己编写插件,这个时候普通的编程知识也不够用了,你需要了解闭包、继承。这个时候你可以带着问题去学习原生,然后回过头再看jquery。等到项目开发完,你也就不会再问这种问题了,哈哈。

假如你时间充足以学习为主,不妨好好看一些原生的书,比如《JavaScript高级程序设计》之类。

至于代码风格和组织代码,和你用原生还是jquery都没关系。jquery一样可以写的很漂亮,原生写得没人懂太容易了~~至于大型项目单页应用,一般都要依赖框架支撑了。

编程不是科学,既没有绝对的真理,也没有完全靠谱的公理定律。
编程更像文学或艺术创作,每个人都可以选择适合自己的工具创造出独有的画作。
无论丰满的原生js还是苗条的jQuery,甚至纤细或者病态的coffeescript都只是工具,只要勤加练习,都能让自己用的很舒服。
100年以后如果你的程序还在被人使用,她一定早已不是年轻时的模样。最后的版本和最初版本还有多少代码是一样的呢?虽然重构你程序的人早已把你骂成了狗,但世人记得的只是你的代码为这个世界添加的那一丝精彩和运行程序时所获得的快乐。

个人认为学习还是循序渐进,先易后难。你觉得什么学得快就先学什么,真正做东西时,遇到的各种坑会逼迫你掌握各种工具。

这跟其他语言是一样的,如果没点内功,有些框架你看都看不懂。更别说用了。jquery吧还好说,ext等等如果没点js基础,你用不了,就是照猫画虎会了,稍微一出错误你就搞不了了。灵活不起来。我这只是拿用框架来举个例子。也是我个人感受。所以如果想成为很牛逼的前端 还是老老实实的先练好内功吧。如果说学习顺序的话,个人觉得js先有基础,然后学jquery,然后再研究jquery源码去提升js水平。理解其中的思想。没必要先非得把js搞得深的不能再深的水平,再去搞jquery。而且如果干研究js,你也只是研究js的一些原生api,你也研究不了多么高深,js大牛不是说会api会的多就叫大牛,思想才是王道,一些思想还是要从别人的优质代码、框架来提升。像个人意见不喜勿喷。

好比内功和招式。学习jquery能快速做出东西,速度积累成就感,之后深入js。反馈式学习对某些人可能帮助比较大

原生JS,这个是基础,必须先学。

我是小鸟

其实我不认可这种学习路径

我是先学习的js后学习的jQuery,工作中jQuery用的多一些

但是涉及修改公司前台js框架时,发现很多内容都是源生js代码,毕竟速度快

js学习之后上手jQuery很快,也比较容易猜测到某个jQuery方法的源生js实现方式

我感觉先学习jQuery的话会产生消极情绪,比如“使用jQuery就行了,这个比js方便多了,学那劳什子干啥”

总之js是基础吧,反过来学习总有种地动山摇的感觉

新手上路,请多包涵

别傻了,jQuery充其量只是个工具,你不懂得原生的js,以后怎么学习其他的框架,怎么成为前端大神,除非你没有很高的追求

我个人的顺序估计不值得推荐。自己走过的坑来说下建议吧

jquery 的优缺点不多说。jquery用得做多的貌似就是web前端效果了。如果你只想做点炫酷的效果,知道jq,拼拼凑凑再google基本都能实现。这都是使用 jquery 层面上的事情。可是,你仅仅想这样么?

论坛大牛说的不懂JS就读不懂jQuery代码。 我的理解并不是说看不懂jq如何使用,而是不懂js,很难理解jq为什么这么设计api接口。

等你需要做稍微大点项目的时候,就会遇到比使用业务更棘手的问题,代码组织,API接口设计等等。

回归正题,个人觉得,学习jq的使用仅仅是一个方面,学会js如何设计jq则是另外一个层面,这方面的教程也多。

所以建议系统的学 js,可能没有拿jq直接上效果好玩。
感觉自己 js 差不多了,就分析分析 jq 的源码
学习的东西不一定以后就真的能用到,但是这个过程对于认知还是蛮重要的

我个人觉得,如果是学习的话还是不推荐jQuery了,ES5以后原生的JavaScript在很多函数方面已经可以媲美jQuery了。只能说jQuery现在属于落幕之滨吧..如果真要学习的话还是推荐AngularJS这种新生军。

剑宗与气宗,剑宗入门快,可以立刻看到效果,提升学习的信心,气宗基础好,可以达到很高的程度,殊途同归,各有优劣,看你自己的抉择。

新手上路,请多包涵

后生可畏阿,像我这种只会一点原生,不会jq的,怎么办阿!T T

个人感觉 暑假还是学号js的基础更重要。就像前面说的,我也同意jQuery只是一个工具,而很多时候我们不只能只是学会使用工具。原生的js是基础。

就像@Joe里说的,要专业还得学好js。

前端的笔试面试原生js占很大的比重啊!

第一次的回答问题,共勉

我也学了半年的前端,我也很赞同上面几位朋友的说法,想进一步提高自己,而不单纯是在做页面效果,要使自己成为前端大牛的话,就要学好原生javascript,学好原生,使用起像jquery这些库,也就是从官方的doc文档上找到自己要用的api来使用罢了。

新手上路,请多包涵

如果只是想很快完成一个项目,稍微了解js和jquery的用法再配合百度google大法就能实现功能,不必花太多的精力学习javascript。很明显你是想学好这方面的知识,所以还是要从基础做起,基础不牢固的话在实践中出现错误很难排查。
话说楼上大神是谁?

新手上路,请多包涵

我觉得都可以,
这上面是不是不可以随便水啊?顺便抓到了楼上的两个野生程序员

原生js和jquery并不冲突,先学jquery会产生的问题是让学习者把js想的太简单,应用的时候容易产生jquery思想,其实js的思想或者说设计模式很多,jquery只是封装好了很多表面的东西。

如果你的需求只是实现一些页面动态效果,学好jquery就足够了,jquery也是做这个用的,如果你想深入编程,只学原生js也是不够的,比如你做ajax请求的时候你要对后端的请求回应有所了解,比如你应用前端mv*框架,你要对传统语言的mvc框架了解才能深入理解,比如你要做字符串验证需要有正则比较扎实的基础,再比如你写一些逻辑判断和数据处理,肯定要对一些计算机原理性的东西有所了解,也要求较多的编程经验,才能怎么组织代码,怎么解耦模块有深入了解。

我也是非计算机专业出身,但是再往前端方面越走越高的时候,会发现自己的思维和对问题的关注点和几年科班学下来的人还是有较大的不同,所以我的观点就是你到底追求什么,如果只想做一些页面特效和页面交互,jquery没问题,很好用的工具,假如你想往深了走,光学原生js也是远远不够的。

个人觉的学好js其他框架都比较容易上手。很多框架顶层都是js如果能把js学好,显的太重要了,还有一点就是学习知识得弄明白原理,你只是会用框架,就好比开车一样,如果你只是会开车,如果哪天车坏了谁来修呢?自己不还得花钱,花时间找人吗?多浪费,

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
101 新手上路
子站问答
访问
宣传栏