Javascript学习指南


Posted in Javascript onDecember 01, 2014

javascript入门太容易了,导致几乎人人随便看看就能上手,零基础的人学个三五天都能对外宣称自己掌握了js。可是真正掌握js是一件很难的事情。如果在初学一门语言的时候第一想到的是问别人,是很难取得进步的。因为得到答案太容易,而不会去想为什么。而且说实话,js并不适合作为第一门编程语言,它兼容并包,容错性高,但这也意味着一但出错你就很难找到错误的原因。另一方面js有一些优秀的特性对于没有编程经历的人来说也很难发现。

如果你真想学好js,我有个大概的自学轨迹供你们参考。

第一步,学习w3school的js编程。

w3school提供了最基础的js学习方案,非常粗略,但很适合让你了解客户端js的概貌。立即可以尝试的实例,也可以让js的初学者马上看到效果。

第二步,你需要一本系统介绍js的书,比如犀牛书(javascript权威指南)。

w3school能告诉你的只有js大概是什么。但你接下来要了解的是js真正是什么。犀牛书就充当了这个角色。犀牛书的涵盖面非常广,并且内容非常全,可以为你打开整个js的世界。当然因为犀牛书比较厚,而且看的时候你没办法马上做点什么成果出来,所以这段时间会比较艰难(对我来说还挺有意思的,因为我喜欢js嘛。)但是如果你真能啃完这本书,我相信你也会被js的魅力所吸引。

第三步,了解js的精华——《javascript语言精粹》

这是一本很薄的书,大概一两天就可以看完。但完全不适合初学者看,当然,相对于看完犀牛书的人来说,就非常适合了。js的诞生太过于仓促,以至于它不得不保留很多糟糕的特性,但你有权利不使用那些。犀牛书告诉了你js是什么,而这本书则告诉你js的精华(与糟粕),看完以后相信你会受益匪浅。

第四步,读代码

如果你不借助任何第三方js库来完成你的网页,说明你很厉害,但我不提倡你那样做。你完全可以使用优秀的第三方js库来进行更快速的开发,比如jquery,dojo,d3等等。而且更令人兴奋的是,这些别人写的js对你是完全可见的。读代码是对一个人编程能力提升最快的方法,但凭空读代码肯定会让你头痛不已。你如何才能快速理解别人为什么要那样写代码?一来你已经读过两本经典的js书籍,你脑子里已经装上了js的精华,二来,你也可以到各种程序员社区提问。

第五步,向开源社区提交代码。

读懂别人的代码是学习,而改进别人的代码则是创造了。
加油吧,总有一天你可以完成一件属于你自己的、开天辟地的作品。

总结:简单的说学习javascript就是要先打好基础,然后多读代码,最后写些例子提交到开源社区,让大家指正你的错误,这样才能更好的进步。

Javascript 相关文章推荐
添加JavaScript重载函数的辅助方法2
Jul 04 Javascript
js验证是否为数字的总结
Apr 14 Javascript
用js传递value默认值的示例代码
Sep 11 Javascript
jquery validate demo 基础
Oct 29 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
Feb 13 Javascript
vue2.0获取自定义属性的值
Mar 28 Javascript
js获取元素的偏移量offset简单方法(必看)
Jul 05 Javascript
详解Angular如何正确的操作DOM
Jul 06 Javascript
angular2 ng2-file-upload上传示例代码
Aug 23 Javascript
深入理解JavaScript 中的执行上下文和执行栈
Oct 23 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
Oct 29 Javascript
JS实现拖拽元素时与另一元素碰撞检测
Aug 27 Javascript
Javascript模块化编程详解
Dec 01 #Javascript
浅谈Javascript中深复制
Dec 01 #Javascript
使用JS+plupload直接批量上传图片到又拍云
Dec 01 #Javascript
关于javascript模块加载技术的一些思考
Nov 28 #Javascript
jQuery实现Twitter的自动文字补齐特效
Nov 28 #Javascript
关于编写性能高效的javascript事件的技术
Nov 28 #Javascript
推荐25个超炫的jQuery网格插件
Nov 28 #Javascript
You might like
漫威DC即将合作联动,而双方早已经秘密开始
2020/04/09 欧美动漫
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
php表单处理操作
2017/11/16 PHP
一段非常简单的让图片自动切换js代码
2006/11/10 Javascript
javascript 节点遍历函数
2010/03/28 Javascript
Javascript 判断Flash是否加载完成的代码
2010/04/12 Javascript
使用jQuery的将桌面应用程序引入浏览器
2010/11/19 Javascript
javascript实现简单的贪吃蛇游戏
2015/03/31 Javascript
浅谈javascript中的constructor
2016/06/08 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
2017/03/21 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
angular框架实现全选与单选chekbox的自定义
2017/07/06 Javascript
JS使用setInterval实现的简单计时器功能示例
2018/04/19 Javascript
React之PureComponent的使用作用
2018/07/10 Javascript
vue 音乐App QQ音乐搜索列表最新接口跨域设置方法
2018/09/25 Javascript
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
vue实现路由切换改变title功能
2019/05/28 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析
2020/03/02 Javascript
[49:56]VG vs Optic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
python pandas 时间日期的处理实现
2019/07/30 Python
python实现PID算法及测试的例子
2019/08/08 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
opencv 图像滤波(均值,方框,高斯,中值)
2020/07/08 Python
python3中编码获取网页的实例方法
2020/11/16 Python
第二层交换机和路由器的区别?第三层交换机和路由器的区别?
2013/05/23 面试题
培训督导岗位职责
2015/04/10 职场文书
企业百日安全活动总结
2015/05/07 职场文书
如何在Mac上通过docker配置PHP开发环境
2021/05/29 PHP
基于Go语言构建RESTful API服务
2021/07/25 Golang
MySQL存储过程及语法详解
2022/08/05 MySQL