如何系统地学习JavaScript
以往,JavaScript简单的网页效果,比方表单验证、浮动广告等,所以那时候JavaScript并没有受到重视。
自从AJAX開始流行后,人们发现利用JavaScript能够给用户带来更好的体验,甚至利用这一优点开发了大型网页游戏,于是这门小语言被重视了起来。如今,非常多公司会招专门的JavaScriptproject师,通常JavaScript是WEB前端开发的必备技能。
简介了JavaScriptr的优点,并不代表大家就会去学习甚至把它学好,兴趣是非常关键的。我觉得兴趣是最好的老师,它是你专心做一件事并把它做好的动力。另外,大家要相信小语言有大作为。我就曾用Greasemonkey写过一些非常有用的工具,比方你能够用JavaScript+Greasemonkey写在线网页游戏的外挂程序。
以下说说本人学习JavaScript的历程和心得吧。
入门
- 学会DIV+CSS布局
使用DIV+CSS布局标准网页。能够使前端XHTML代码更少、结构更清晰。这有利于轻松用JavaScript操作DOM,比方。要展示一个3行3列的列表,假设用传统的表格布局,如今要你用JavaScript动态生成这个列表,那么就须要一个循环嵌套。假设採用li结构加CSS浮动布局,一次循环就好了。当然,WEB标准化不是一定不能使用表格,我的意思是结构清晰的XHTML更易于把JavaScript效果或功能整合到项目中。
- 掌握几种开发測试工具
作为一个开发者,熟悉測试工具是必须的。这有助于提高你发现问题和解决这个问题的效率,对于特别大的项目更是如此。JavaScript和XHTML开发測试利器我就先推荐两个最经常使用的。它们是:Web Developer和Firebug。
- 熟悉JavaScript每个方法的作用
这一要求听起来似乎有点不太实际,我想这个要求对于像C#、JAVA这些大型语言来说确实是,由于这些语言类库实在太庞大了,相信没有人能够全面记住它,并且也是没有必要所有记住。比方用JAVA做网页与手机开发所关注的类库是不一样的。而JavaScript则不是,它的内置方法函数真的不多,先全面熟悉一下,开发起来也将得心应手。比方,你一開始可能觉得JavaScript有trim()这个非常多语言都有的去行头行尾空格的方法,当你了解JavaScript内置函数库后你会发现原来在JavaScript中这些方法是要自己去实现。再比方。假设你是从其他比較强大的语言转过来玩JavaScript,你又可能觉得JavaScript应该有MD5加密的方法,当然这也是没有的,但有人用JavaScript实现了这个方案,即JavaScript
MD5。
说究竟JavaScript内置方法少的可怜。但非常多牛人写了一些新方法添加JavaScript功能。比方prototype框架主要是对JavaScript基础函数进行原型扩展的。
- 了解DOM编程
了解DOM编程算是学习JavaScript过程比較重要的课程,由于JavaScript除了编写一些纯数据处理的逻辑外,很多其他的是在动态更改XHTML的结构和内容,以达到界面动态更新的目的,而这些工作都要依赖DOM编程。jQuery框架在这方面封装的相当好,提供了丰富的DOM操作方法,能够让你轻松找到页面不论什么地方的一个DOM节点(XHTML标签),然后进行相关操作(增、删、改、查)。对于有过用其他语言操作XML文档经验的朋友。相信这一块非常快上手。
- 接触并使用AJAX
在今天。学习了JavaScript而不使用AJAX,那是埋没JavaScript优势了(AJAX本身并不能算是JavaScript内容)。AJAX对于用户以及server来说都是有优点的,对于用户,提供更好的用户体验,最典型的一个应用场景:注冊页面的username可用性预检測,传统的可能会遇到这种问题:用户填写了一堆资料后提交表单,结果被server告知这个用户被注冊了。要用户又一次填写资料注冊,这对于大型多用户站点那是非常致命的,由于用户输10个username可能有一半已被使用了。对于server来说,降低网页流量,由于AJAX后,通常是按需载入数据的,不会由于局部更新而又一次载入整个页面。比方一个网页占三屏高。我们能够默认仅仅载入第一屏的内容。当用户拉动滚动栏往下的时候。再载入二三屏的内容。另外像WEB在线地图应用也是AJAX使用的典范。
提高
- 深入理解JavaScript thiskeyword
JavaScript this的作用与指向跟非常多真正面向对象的开发语言是有非常大区别的,它不始终指向当前对象。是会变化的。假设不注意这个问题,就有可能遇到看似没错的代码报错或不运行等问题。
- 学习JavaScript OOP编程
OOP是个好东西,它使程序猿思考问题更有组织性。代码的组织也更清晰。
JavaScript 也能够OOP,但与一些传统的OOP语言相同存在较大区别,所以要真正用熟JavaScript OOP也是须要下点功夫的。
- 了解闭包
JavaScript闭包也是被谈得比較多的一个话题,闭包使JavaScript变量作用域变得复杂起来,但这一特性又使这门语言变的更灵活了。
- 学习规范开发
团队精神相信大家是听过不少了,就职一个公司做开发。当然离不开团队,团队要想合作愉快。每一个成员的编码必需符合一定规范,这也是每一个公司对程序猿的基本要求。
关于规范通常指变量命名、文件组织、凝视规范等,这方面知识与其他语言的规范是有相通性的。
- 找本算法的书读一读
我觉得学会并使用一门语言并非什么难事,难的应该是用语言这主要的语法与语句去解决一些复杂的问题。要解决一些复杂的问题,可能会用上一些算法。有些算法实现可能是一个团队在做的。比方中科院中文分词的详细实现,另外像游戏经常使用自己主动寻径A*算法等。或许你觉得你不可能在JavaScript开发上遇到这么复杂的问题。事实上这还要看你在做什么项目,假设你是在开发大型网页游戏。通常面临很多其他具有挑战性的难题。假设你有读过一些算法书籍,了解一些常见问题的解决方法,在开发过程中自然会如虎添翼。另外。熟悉算法显然对于你日后接触其他开发语言也是有帮助的。
习惯
- 兼容、BUG问题做好笔记
CSS与JavaScript浏览器兼容问题最好做好笔记,由于这些问题,或者说BUG是比較诡异的。这些问题浏览器不会提示你错在哪里,IDE也不会提示你。特别是CSS兼容问题,这就会导致你在开发过程碰到这种问题会卡老半天得不到解决。即使之前解决过同类问题。以后可能又会碰上。结果之前没有做好笔记加强记忆。注定你要再受罪一次。由于这些兼容问题不是一两个,暂时记忆效果是不明显的。以我经验,非常多问题是在IE6下发生的。如今IE6连微软自己都希望加速它灭亡,这对于前端开发的我们来说当然是一个好消息。
- 阅读优秀的代码,比方jQuery
阅读优秀代码绝对也是自我提高的好方法。这不仅能够了解优秀代码的组织规范。更能够了解一些功能的实现思路。比方jQuery就是一个很值的学习的JavaScript框架。
当然了。要阅读这样专业的JavaScript框架。JavaScript基础要扎实。不然看的过程中会遇到太多疑问,甚至对自己的信心也是一种打击。
注意
- 在JavaScript入门之前避免直接使用JavaScript框架做开发
假设你没有不论什么JavaScript基础。请不要直接使用JavaScript框架做开发,我觉得这可能会误导你对一门语言的认识,比方你直接使用了jQuery用点连起来的语句写法。你是否会觉得这是JavaScript语法的一种呢?再比方你使了prototype你不要把框架扩展后的基类方法觉得是JavaScript内置的。我觉得JavaScript框架是用来提高效率的。它绝对不是JavaScript入门应该学习的。
- 网上找的非常多样例可能不是跨浏览器兼容的
有非常多JavaScript效果源代码是N年前某网友写的,N年前是IE的天下。于是一些前端懒得解决脚本跨浏览器兼容问题,使写出来的脚本仅仅适用于IE。当你得到这种一段代码,请不要说垃圾,也不要为此发牢骚,由于这些代码并非没有一点价值的,假设你了解JavaScript跨浏览器兼容问题,我相信你可以非常容易地修改代码以不太需要更好的兼容性。
版权声明:本文博客原创文章,博客,未经同意,不得转载。