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 相关文章推荐
jquery 简单应用示例总结
Aug 09 Javascript
浅析AngularJs HTTP响应拦截器
Dec 28 Javascript
基于JS代码实现导航条弹出式悬浮菜单
Jun 17 Javascript
微信小程序 HTTPS报错整理常见问题及解决方案
Dec 14 Javascript
微信小程序 UI与容器组件总结
Feb 21 Javascript
JavaScript实现弹出广告功能
Mar 30 Javascript
让微信小程序支持ES6中Promise特性的方法详解
Jun 13 Javascript
细说webpack源码之compile流程-入口函数run
Dec 26 Javascript
浅谈webpack对样式的处理
Jan 05 Javascript
JS选取DOM元素常见操作方法实例分析
Dec 10 Javascript
vue 中使用 watch 出现了如下的报错的原因分析
May 21 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
May 31 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
全文搜索和替换
2006/10/09 PHP
php4的session功能评述(一)
2006/10/09 PHP
PHP中的生成XML文件的4种方法分享
2012/10/06 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
JQuery里面的几种选择器 查找满足条件的元素$("#控件ID")
2011/08/23 Javascript
jQuery源码分析-05异步队列 Deferred 使用介绍
2011/11/14 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
取得元素的左和上偏移量的方法
2014/09/17 Javascript
Nodejs初级阶段之express
2015/11/23 NodeJs
JS实现页面跳转参数不丢失的方法
2016/11/28 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
Vue 实用分页paging实例代码
2017/04/12 Javascript
node.js 中间件express-session使用详解
2017/05/20 Javascript
React 子组件向父组件传值的方法
2017/07/24 Javascript
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
基于IView中on-change属性的使用详解
2018/03/15 Javascript
node创建Vue项目步骤详解
2020/03/06 Javascript
使用vant的地域控件追加全部选项
2020/11/03 Javascript
python发送邮件接收邮件示例分享
2014/01/21 Python
Android应用开发中Action bar编写的入门教程
2016/02/26 Python
python实现FTP服务器服务的方法
2017/04/11 Python
Python实现将文本生成二维码的方法示例
2017/07/18 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
Python 面试中 8 个必考问题
2018/11/16 Python
python实现静态服务器
2019/09/05 Python
Python3实现二叉树的最大深度
2019/09/30 Python
python 解决mysql where in 对列表(list,,array)问题
2020/06/06 Python
html5调用app分享功能示例(WebViewJavascriptBridge)
2018/03/21 HTML / CSS
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
个人学习总结范文
2015/02/15 职场文书
MySQL之DML语言
2021/04/05 MySQL
Kubernetes中Deployment的升级与回滚
2022/04/01 Servers
如何利用python创作字符画
2022/06/25 Python