新手学JS一开始应该学习哪个

想学习javascript JS和jQuery哪个重要 先学哪个
投稿:mdxy-dxy
字体:[ ] 类型:转载 时间:
在一些技术论坛与qq群经常看到有这样类似的提问,当然提出这样问题的通常都是新手为了解决大家的疑惑,同时帮助新手程序员能更快掌握学习的方向,不致于弄错重点
笔者以自己身学习和使用经验分享给大家,有任何问题或疑惑,欢迎留言
在回答题目问题前,首先大家需要了解下什么是js,什么是jQuery
js,即JavaScript
在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。
jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写得更少,做得更多)
通过上面的简单介绍,想必大家已经知道了最重要的一点,即:jQuery是一个javascript库;
那么不用笔者强调,大家应该都知道js和jQuery哪个更重要,先学哪个
其实只要学好了javascript,使用jquery将不会有什么问题
依笔者经验,新手程序员必须花时间重点学习一下javascript;
至于jQuery可以直接在使用时参考jQuery参考文档,不需花太多时间在上面,当然如果读者时间充裕,也可以学习下jQuery源码,一边更好的了解jquery实现原理
脚本之家小编小结:
想学习js(javascript),必须学习原生的js 代码,这样才能了解js的精髓之所在。而jquery就是js的库,但是在实际应用中如果大量使用js推荐使用jquery,比较jquery已经对多浏览器的兼容性好,省去了很多麻烦。不用考虑兼容性。如果只会jquery而不会js不利于其它编程语言的学习。
javascript和jquery这两者之间几乎没有可比性。
虽然jquery基于javascript,但是实际上jquery是和javascript完全不同的两种语言,jquery实际上是一种逻辑式语言和纯粹的函数式语言的结合体。由于这两个特性,因此jquery对DOM的操作极度简化。使用jquery往往可用一两行代码实现javascript原生代码几十甚至上百行代码才能实现的功能。
但是jquery是一个特化的框架,它不是一个完整的解决方案,仍然离不开javascript。
如果想要一个基本上不依赖于原生javascript,可以尝试Sencha。
各種封裝,包括jq, dojo等等,主要目的就是爲了省心,拿jq來說:
JQ对不同浏览器的事件,DOM对象,都进行了封装,各种操作都可以直接兼容各种浏览器, 要知道, 不同浏览器的区别不仅仅是在CSS里写"-webkit-"还是"filter"的区别, 连事件模型这种底层的东西都不一样= =
JQ特有的CSS-LIKE选择器, 链式写法, 封装的各类animate函数, 封装了的异步加载, 都大幅提高了开发效率, 减少重复劳动
JQ用delay和一系列的函数封装了AJAX操作, 这个功能目测还在不断改进和完善. 反正是比JS省心就是了.
其他就是有些常用函数JQ有所以不用自己写了,你比如浏览器检测...
插件不断丰富, 资料丰富 等等
当然,这样也导致了
JQ比原生JS慢上 10倍(chrome)~100倍(ie). 具体数忘了, 反正是这个数量级的...尤其是有些人喜欢滥用选择器和不用链式写法
所以说, 如果只用一句JS就可以解决的问题, 就不要用JQ了啊亲...亲测$('#x')比getElementById('x')慢40倍
这是@TooBug兄的实测代码
JQ也不见得适用所有情况就是了, 网站规模更大就会凸显JQ的不足. 比如没有命名空间- -. 很多网站是根据自己的情况建立自己的函数库.
题外话, 如果项目相比"一个网页"更偏向"一个APP"的情况, jq 不見得是最合適的
谈性能一般得看你的业务复杂度、开发能力、团队规模,不能一概而论
1.业务复杂度高的项目或网站,开发能力不是很强的团队,采用原生JS都会没有机会让你考虑性能,兼容性就是很大的障碍;
2.业务复杂度低,就Hello world的功能,就无所谓性能;
3.如果团队牛叉、业务复杂的时候,代码可维护性才是最重要的,性能调优只会在真正出现渲染瓶颈的时候才做;
4.性能还得往前看,知道Office为啥成功吧,因为他们一直往前看,电脑的处理能力越来越强了,啥问题都不是问题了。
1、jQ等框架解决易用性和兼容性问题,效率稍低
2、原生js解决运行效率问题,兼容比较麻烦
3、JQ的优势是能让程序员多活好几年,原生js能让程序员水平提高一个档次
其实jquery和原生JS并没有什么很大的区别 jquery底层还是调用原生的JS 只不过jquery的api封装了浏览器的差异性 为开发提供了便捷处理方式
js学好就都搞定了。jquery只是一个js的框架而已,js的框架多着呢。这个只是比较好而已。强烈建议学习js,做项目的时候用jquery就行了。
自己学习的时候 js的优势就是你学到的东西更多一点处理浏览器之间的兼容问题之类的。会给你积累经验。
做项目的时候jquery的有点就是效率高,开发成本降低了N倍。
4、js:简单的东西实现起来很复杂
jquery:复杂的东西实现起来很简单
论性能,jquery差太多了
5、jquery是用js编写的函数库,把我们平时经常用到的效果都封装实现了,再使用时只需要调用即可。需要DIY的话,当然还是要用到JS了。
6、js是基础,jQuery只不过是一种工具而已,基础很重要
就目前看到的,大多数人用jquery无非两个方面,一个dom选择,以及衍生出来的.children,.siblings 等等,再一个就是event事件绑定,其他什么循环,方法声明啊,包括常用到的settimeout不都是原生的吗。
我觉得jquery和原生根本不应该认为是对立关系,一个jquery高手肯定也会用到js类啊,理解原型链啊,理解dom这些东西,所以不应该认为用原生的就是厉害,用jquery就是不行这样的想法。
你html结构复杂,用jquery选择器再方便不过了,设计要求的效果特别苛刻,用jquery的动画和特效再适合不过了,这些都是无可厚非的事情,但是你不可能一点不用到原生js而只用jquery吧,那是不可能的,变量声明都是原生js。
所以面试的时候对面问你原生js用的怎么样的时候你大可自信的说,除了 dom 选择和 eventlisterner不太熟以外,其他都没问题
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具【图文】JS初学者实例教程_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
JS初学者实例教程
&&这是一套JS的简单实用教程,所涉及到的例子都非常有用,很适合初学者跟着教程一步一步来学习。虽然要的高了些,但物有所值,祝大家成功!!
大小:9.26MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢21被浏览3679分享邀请回答0添加评论分享收藏感谢收起0添加评论分享收藏感谢收起新手javascript和jquery要先学习哪一个_百度知道
新手javascript和jquery要先学习哪一个
我有更好的答案
提供函数接口,简化了JS操作。先学JavaScript,并直接在浏览器中解释执行),并且方便地为网站提供AJAX交互。jQuery是JS的框架。 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,基于JS语言,封装JS功能,这是学习JQuery的基础javaScript的简写形式就是JS,是由Netscape公司开发的一种脚本语言,一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能(其编写的程序可以被嵌入到HTML或XML页面中
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。零基础的Web前端初学者应该如何系统地学习?
网站开发开发大致分为前端(客户端)和后端(服务器端),前端主要负责实现视觉和交互效果,以及与服务器通信,完成业务逻辑。它的核心价值在于实现用户体验,大型互联网公司的用户体验部门,一般会包括用户研究、交互设计、前端技术和视觉设计等方面的内容。零基础学习前端知识可以按照如下路径进行系统学习:
基础知识:
1. html + css 这部分建议通过HTML的入门书进行学习,例如《Head First HTML与CSS(第2版)》。背熟各个标记的使用之后,可以模仿一些网站做些页面。在实践中积累了一些经验后。
2. JavaScript要学的内容实在很多,如果没有其他编程语言的基础的话,学起来可能要费些力,建议可以看《JavaScript语言精粹》,JavaScript是一门相对比较复杂的语言,这本书能够帮助你区分哪些是语言的精华,哪些是糟粕,对于语言精华,应该深入学习。糟粕部分能看懂别人写的代码就行,自己就不用尝试了。另外,扎卡斯的《JavaScript高级程序设计》非常全面地讲解了JavaScript的方方面面,值得一读再读。
有了以上基础,就可以进行一般的静态网页设计,不过对于复杂的页面还需要进一步学习。
1. CSS方面。推荐《精通CSS:高级Web标准解决方案(第2版)》,看完这本书你应该对:盒子模型,流动,block,inline,层叠,样式优先级,等概念非常了解了。另外,作为手册可以参阅《CSS权威指南(第3版)》这本书,它对标题,背景,圆角,导航条,table,表单等主题都有详细的介绍。
2. JavaScript方面。上面提到的两本书还不足以让你胜任JavaScript编程工作。在有了基础之后,进一步的学习内容包括:
(1)框架。推荐jQuery,简单易用,通过jQuery即可完成一些简单的项目。学习方法也很简单,照着产品文档做几个页面就行了,不用面面俱到,以后遇到问题查文档就行了。框架可以帮你屏蔽浏览器的差异性,让你能更专注与Web开发学习的精髓部分。
(2)面向地向的JavaScript 。JavaScript并不完全是一个面向对象的语言,它的很多设计理念都有函数编程语言的影子,甚至说如果你不用面向对象,完全可以把它理解成一门函数式编程语言。JavaScript的很多语言特性,都是因为他具有函数式语言的特点才存在的。这部分推荐先学习面向对象的基本理论,对封装,继承,多态等概念要理解。这部分推荐《JavaScript面向对象编程指南(第2版)》。
(3)JavaScript语言的内部机制。必须弄清如下概念:JavaScript中变量的作用域,变量传递方式,函数的定义环境与执行环境,闭包,函数的四种调用方式(一般函数,对象的方法,apply,call),以及四种调用方式下,this指向的是谁。这部分内容你会在《JavaScript语言精粹》和《JavaScript高级程序设计》中详细的了解。另外,必须理解json。
(4) DOM编程,这个Web前端工程师的核心技能之一。必读《JavaScript DOM编程艺术(第2版)》,另外《高性能javascript》这本书中关于dom编程的部分讲的也很好。还有一本比较老的书:《JavaScript.DOM高级程序设计》,用一个写JavaScript类库的视角来审视JavaScript的实现。
(5)Ajax编程。Ajax是前端领域的又一个核心技术。推荐O'Reilly的《Ajax权威指南》,主要掌握它的核心思路,真正使用它来编程是很容易的,如今几乎所有框架都对Ajax有良好的封装,编程并不复杂。
(6) 了解浏览器差异性。这部分包括css和JavaScript两部分,浏览器差异内容很多,建议在实践中多多积累。另外对于浏览器的渲染模式,DOCTYPE等内容应该系统学习。
代码层面:
有了以上知识,对于大多数小型网站,你应该已经可以写出能够工作的代码了。但要想成为更专业的前端,你还需继续努力。更高的要求大概还有四方面:1易维护,2可测试,3高性能,4低流量(移动端)。
1. 易维护。对于页面你该理解:样式、数据、行为三者分离。对于JavaScript代码,最好了解设计模式,重构,MVC等内容。
2. 可测性。
3. 高性能。必读《高性能JavaScript》
4. 低流量。移动端关注比较多。
工程层面:
前端项目同样面临软件生命周期的各个环节,首先是代码管理,你必须学会使用svn和git。其次是代码的构建,如今前端代码构建已经不是简单的压缩一下了,需要进行依赖管理、模块合并、各种编译,需要学会使用grunt等前端构建工具,最近gulp比较火,也需要了解。
对于前段开发,基本内容就这些了,可以根据自己的兴趣爱好选择性学习以下内容。
交互设计。大型互联网公司有专业人士研究该领域,不过不懂交互的前端一定不是好前端。推荐《About
Face 3 交互设计精髓》。Alan
Cooper大神的杰作,交互设计必读书籍。
后端。应该说前段工程师必须至少了解一门后端语言,不过如果爱好也可深入学习,入手难度比较低的应该是php了。这部分由可分为基于页面,基于框架两种。大型项目都是基于框架开发的,建议至少了解一个MVC框架,比如php的ci,
yii, yaf 等,好还框架的设计思想都大同小异。如今Node.js在大公司已经得到普遍的使用,推荐大家使用在Node.js上使用Express框架做一些后端服务的开发。
Flash。Flash并不是前端工程师的核心技能之一,不过ActionScript和JavaScript都遵循ECMA-262规范,学习的难度并不是特别高。目前使用Flash平台的领域主要集中于Web Game领域,如果想要进入游戏开发方向,可以详细地了解。
HTML5和CSS3 。HTML5规范已经于2014年10月28日发布了,移动端HTML5和CSS3已经得到了非常广泛的使用,相关的工具和环境也获得飞快地发展,有志于前端的同学必学。
Android和ios开发。时至今日,前端的工作领域已经非常广泛,native的界面开发本质上也是前端开发,各大公司都面临着Native环境和Web环境页面同时维护的问题,如果能够在技术上得到统一,将会有巨大的价值。对于学有余力的同学,应该了解Native开发的基本流程,至少了解到界面构建的技术。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

 

随机推荐