一、前言
在过去,JavaScript只是被用来做一些简单的网页效果,比如表单验证、浮动广告等,所以那时候JavaScript并没有受到重视。自从AJAX 开始流行后,人们发现利用JavaScript可以给用户带来更好的体验,甚至利用这一优点开发了大型网页游戏,于是这门小语言被重视了起来。现在,很多 公司会招专门的JavaScript工程师,通常JavaScript是WEB前端开发的必备技能。简单介绍了JavaScriptr的好处,并不代表大 家就会去学习甚至把它学好,兴趣是很关键的,我认为兴趣是最好的老师,它是你专心做一件事并把它做好的动力。另外,大家要相信小语言有大作为,我就曾用Greasemonkey写过一些非常实用的工具,比如你可以用JavaScript+Greasemonkey写在线网页游戏的外挂程序。下面说说本人学习JavaScript的历程和心得吧。

二、入门
1、学会DIV+CSS布局
使用DIV+CSS布局标准网页,可以使前端XHTML代码更少、结构更清晰,这有利于轻松用JavaScript操作DOM,比如,要展示一个3行3列 的列表,如果用传统的表格布局,现在要你用JavaScript动态生成这个列表,那么就需要一个循环嵌套,如果采用li结构加CSS浮动布局,一次循环 就好了。当然,WEB标准化不是一定不能使用表格,我的意思是结构清晰的XHTML更易于把JavaScript效果或功能整合到项目中。

2、掌握几种开发测试工具
做为一个开发人员,熟悉测试工具是必须的,这有助于提高你发现问题和解决问题的效率,对于特别大的项目更是如此。JavaScript和XHTML开发测试利器我就先推荐两个最常用的,它们是:Web Developer和Firebug。

3、熟悉JavaScript每一个方法的作用
这一要求听起来似乎有点不太实际,我想这个要求对于像C#、JAVA这些大型语言来说确实是,因为这些语言类库实在太庞大了,相信没有人可以全面记住它, 而且也是没有必要全部记住,比如用JAVA做网页与手机开发所关注的类库是不一样的。而JavaScript则不是,它的内置方法函数真的不多,先全面熟 悉一下,开发起来也将得心应手,比如,你一开始可能认为JavaScript有trim()这个很多语言都有的去行头行尾空格的方法,当你了解 JavaScript内置函数库后你会发现原来在JavaScript中这些方法是要自己去实现。再比如,如果你是从其它比较强大的语言转过来玩 JavaScript,你又可能认为JavaScript应该有MD5加密的方法,当然这也是没有的,但有人用JavaScript实现了这样的方法,即JavaScript MD5。说到底JavaScript内置方法少的可怜,但很多牛人写了一些新方法增加JavaScript功能,比如prototype框架主要是对JavaScript基础函数进行原型扩展的。

4、了解DOM编程
了解DOM编程算是学习JavaScript过程比较重要的课程,因为JavaScript除了编写一些纯数据处理的逻辑外,更多的是在动态更改XHTML的结构和内容,以达到界面动态更新的目的,而这些工作都要依赖DOM编程。jQuery框架在这方面封装的相当好,提供了丰富的DOM操作方法,可以让你轻松找到页面任何地方的一个DOM节点(XHTML标签),然后进行相关操作(增、删、改、查)。对于有过用其它语言操作XML文档经验的朋友,相信这一块很快上手。

5、接触并使用AJAX
在今天,学习了JavaScript而不使用AJAX,那是埋没JavaScript优势了(AJAX本身并不能算是JavaScript内容)。 AJAX对于用户以及服务器来说都是有好处的,对于用户,提供更好的用户体验,最典型的一个应用场景:注册页面的用户名可用性预检测,传统的可能会遇到这 样的问题:用户填写了一堆资料后提交表单,结果被服务器告知这个用户被注册了,要用户重新填写资料注册,这对于大型多用户网站那是很致命的,因为用户输 10个用户名可能有一半已被使用了。对于服务器来说,减少网页流量,因为AJAX后,一般是按需加载数据的,不会因为局部更新而重新加载整个页面。比如一 个网页占三屏高,我们可以默认只加载第一屏的内容,当用户拉动滚动条往下的时候,再加载二三屏的内容。另外像WEB在线地图应用也是AJAX使用的典范。

三、提高
1、深入理解JavaScript this关键字
JavaScript this的作用与指向跟很多真正面向对象的开发语言是有很大差别的,它不始终指向当前对象,是会变化的。如果不注意这个问题,就有可能遇到看似没错的代码报错或不执行等问题。

2、学习JavaScript OOP编程
OOP是个好东西,它使程序员思考问题更有组织性,代码的组织也更清晰。JavaScript 也可以OOP,但与一些传统的OOP语言同样存在较大差别,所以要真正用熟JavaScript OOP也是需要下点功夫的。

3、了解闭包
JavaScript闭包也是被谈得比较多的一个话题,闭包使JavaScript变量作用域变得复杂起来,但这一特性又使这门语言变的更灵活了。

4、学习规范开发
团队精神相信大家是听过不少了,就职一个公司做开发,当然离不开团队,团队要想合作愉快,每个成员的编码必需符合一定规范,这也是每个公司对程序员的基本要求。关于规范通常指变量命名、文件组织、注释规范等,这方面知识与其它语言的规范是有相通性的。

5、找本算法的书读一读
我认为学会并使用一门语言并不是什么难事,难的应该是用语言这基本的语法与语句去解决一些复杂的问题。要解决一些复杂的问题,可能会用上一些算法,有些算法实现可能是一个团队在做的,比如中科院中文分词的具体实现,另外像游戏常用自动寻径A*算法等。 也许你认为你不可能在JavaScript开发上遇到这么复杂的问题,其实这还要看你在做什么项目,如果你是在开发大型网页游戏,通常面临更多具有挑战性 的难题,如果你有读过一些算法书籍,了解一些常见问题的解决方法,在开发过程中自然会如虎添翼。另外,熟悉算法显然对于你日后接触其它开发语言也是有帮助 的。

四、习惯
1、兼容、BUG问题做好笔记
CSS与JavaScript浏览器兼容问题最好做好笔记,因为这些问题,或者说BUG是比较诡异的,这些问题浏览器不会提示你错在哪里,IDE也不会提 示你,特别是CSS兼容问题,这就会导致你在开发过程碰到这样的问题会卡老半天得不到解决。即使之前解决过同类问题,以后可能又会碰上,结果之前没有做好 笔记加强记忆,注定你要再受罪一次,因为这些兼容问题不是一两个,临时记忆效果是不明显的。以我经验,很多问题是在IE6下发生的,现在IE6连微软自己 都希望加速它灭亡,这对于前端开发的我们来说当然是一个好消息。

2、阅读优秀的代码,比如jQuery
阅读优秀代码绝对也是自我提高的好方法,这不仅可以了解优秀代码的组织规范,更可以了解一些功能的实现思路。比如jQuery就是一个非常值的学习的JavaScript框架。当然了,要阅读这样专业的JavaScript框架,JavaScript基础要扎实,不然看的过程中会遇到太多疑问,甚至对自己的信心也是一种打击。

四、注意
1、在JavaScript入门之前避免直接使用JavaScript框架做开发
如果你没有任何JavaScript基础,请不要直接使用JavaScript框架做开发,我认为这可能会误导你对一门语言的认识,比如你直接使用了 jQuery用点连起来的语句写法,你是否会认为这是JavaScript语法的一种呢?再比如你使了prototype你不要把框架扩展后的基类方法认 为是JavaScript内置的。我认为JavaScript框架是用来提高效率的,它绝对不是JavaScript入门应该学习的。

2、网上找的很多例子可能不是跨浏览器兼容的
有很多JavaScript效果源码是N年前某网友写的,N年前是IE的天下,于是一些前端懒得解决脚本跨浏览器兼容问题,使写出来的脚本只适用于IE。 当你得到这样的一段代码,请不要说垃圾,也不要为此发牢骚,因为这些代码并不是没有一点价值的,如果你了解JavaScript跨浏览器兼容问题,相信你 可以很轻松通过少需修改使代码有更好的兼容性。

五、相关阅读《JavaScript开发规范要求》

作者:WebFlash
出处:http://webflash.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载于:https://blog.51cto.com/green13366/1178929

JavaScript学习历程和心得相关推荐

  1. 人工神经网络与深度学习学习历程,心得及资料分享

    人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点.它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同 ...

  2. Javascript学习历程之事件

    增加监听函数(f1) 方法一 window.onload = function () {var myP = document.getElementById("myP"); myP. ...

  3. Javascript学习历程之表格与表单

    /*针对表格常用的DOM操作 针对<table>元素 caption tBodies tFoot tHead rows deleteRow(position) insertRow(posi ...

  4. JavaScript学习笔记(十)——学习心得与经验小结

    JavaScript学习笔记(十)--学习心得与经验小结 目前我先列好提纲,利用每晚和周末的闲暇时间,将逐步写完 ^_^ 转载于:https://www.cnblogs.com/mixer/archi ...

  5. 如何探索一门未知领域新技术?看腾讯前端高级工程师的学习历程

    作者:黄丹华,腾讯公司前端高级工程师,爱好Node.js研究开发,并基于自己的学习写一些心得体会,同时喜欢基于自己的一些所见所闻写一些互联网思考的博文.2011年进入腾讯做前端开发,现在主要是基于PH ...

  6. asp.net2.0学习历程 菜鸟到中级程序员的飞跃【月儿原创】

    asp.net2.0学习历程 菜鸟到中级程序员的飞跃 --30本好书点评 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.5.1 ...

  7. JAVASCRIPT发展历程

    JAVASCRIPT发展历程 诞生 JavaScript 因为互联网而生,紧跟着浏览器的出现而问世.回顾它的历史,就要从浏览器的历史讲起. 1990年底,欧洲核能研究组织(CERN)科学家 Tim B ...

  8. asp.net2.0学习历程 菜鸟到中级程序员的飞跃[z转]

    asp.net2.0学习历程 菜鸟到中级程序员的飞跃 --30本好书点评 学历历程 如果你是一个菜鸟或者自认为初学者那么本文非常适合你: 不能说这30本书就是最佳组合,但是可以说这个组合不差: 本人曾 ...

  9. 计算机音乐制作 体会心得,音乐软件制作的学习感受和心得体会

    音乐软件制作的学习感受和心得体会 一段音乐制作的学习历程,无疑开阔自己的眼界,虽已过了痴迷网络歌手吹拉弹唱样样精通的时期,但电脑音乐制作软件解开了自己心头的很多疑团,使自己对音乐制作有了更深刻的认识, ...

最新文章

  1. Window7 安装开源swf反编译软件JPEXS Free Flash Decompiler(FFdec)实录
  2. python软件界面-用Html来写Python桌面软件的UI界面-htmlPy
  3. java访问控制度_菜鸡的Java笔记 - java 访问控制权限
  4. 软件的安装目录 linux,linux 软件安装目录详解
  5. oracle t7-2报价,Sun/Oracle T7-2服务器主板7315607全新7318270原装7318240
  6. JavaFX鼠标滚动放大缩小图片
  7. python颜色表_数据库表连接的简单解释 | 图文并茂,通俗易懂
  8. CoreAnimation-CABasicAnimation
  9. Google 加入反 IE6 联盟:IE6 真的能被消灭吗?
  10. 如果看到消息“此计算机无法读取您插入的磁盘”,该怎么办?
  11. 【动漫推荐】Specail A--特优生
  12. C#敏感词过滤算法实现
  13. 观天涯kk大神10年帖子有感
  14. 对计算机硬盘格式化,电脑硬盘格式化和快速格式化的区别
  15. 通讯录管理系统(C语言版)
  16. 机器学习笔记(八):强化学习
  17. [转]奇虎360黑匣子之谜:暗藏后门盗取用户隐私
  18. 计算机b类核心期刊有哪些,B类及以上期刊有哪些
  19. office打开不了服务器文件,Office常见打开问题及解决 -电脑资料
  20. 基于SpringBoot的企业人事管理系统

热门文章

  1. ncbi查找目的基因序列_使用NCBI设计qPCR引物方法
  2. 树莓派udev不能自动挂载_直播课:教你用树莓派实现智能商店的自动结账
  3. java 获取java文件路径_Java怎么获取相对路径下所有的.java文件的信息
  4. 广西师范大学c语言期末试题,广西师范大学 据库原理(A卷).doc
  5. 算一串数字的entropy_2020520|一个万年一遇有爱的日子,网友:就是一串数字
  6. HDLBits 系列(14) Latch and Dff and Edge detect
  7. 【Spring学习笔记】之【2.3Ioc配置使用】
  8. 多面体体积 matlab,matlab计算多面体体积实现代码
  9. DSP调试报错:Error connecting to the target:Connect to PRSC failed
  10. FPGA跨时钟域设计的一点总结