UDN-企业互联网技术人气社区

板块导航

浏览  : 3425
回复  : 23

[问答] 如何系统性的学习 Javascript?

[复制链接]
李静晨的头像 楼主
发表于 2015-7-30 17:39:17 | 显示全部楼层 |阅读模式
我是 Javascript 小白一只,现在想学 Javascript,可是不知道从哪里入手。然后就想说写一个学习计划来让自己比较有规划性的学习。可是对于 Javascript 的了解又比较少,就不知道怎么写。请各位大牛指点指点。
发表于 2015-7-30 18:10:35 | 显示全部楼层

我2013年6月毕业,同年3月开始认真学习JavaScript,而在此之前我相对熟悉些http:// VB.NET,Java,C++什么的。
但我学习的办法其实比较笨,只是因为自知看书比较快,所以就大量查阅有关博客以及JS书籍/电子文档。从《锋利的jQuery》入门,豆瓣8分以上的JS有关的图书,10本里面我大概读过7~8本。 由于JS的语言特性使得你很容易进行横向学习(现在想想,也是我年tai少sha无bi知,C++没学好的缘故),因此快速拓展JS要素时,我还顺手点了下Python和Lua的技能书。

当然,在阅读这些书的过程中我都是带着强烈目的去读的(换言之,读一本书之前,你要知道你为什么读这本书,你需要解决的问题是什么),同时,配合平时在工作中持续的Coding。

有些内容或许因为翻译,或许因为概念本身晦涩,未必很好理解,但我相信,Coding 千遍,其义自现。各位从别的语言平台过来的程序员应该不会有问题,但倘若是初学编程,请慢慢读,慢慢学,打好基础再谋求起飞。

比如完整follow example code 写一遍,Run一遍,思考一下代码原理/执行的过程/解决的问题,然后试试改几个参数再Run一遍,接着再考虑看看现实的环境中,能找到符合这段代码目的的用例吗?

如果非要书单的话,我推荐以下几本(按推荐的阅读顺序排序,纯JS向):



这个至少读两遍以上。



很薄的一本书,但告诉了你一些工程向的东西,来提高一门不怎么好维护的语言的可维护度。



老道这人比较极端,但无论如何这本书入门还是可以一看的,至于有些观点采纳与否可以之后再思索。



异步几乎是JavaScript世界里最重要的执行机制之一了,也不厚,很容易读完,但可以反复咀嚼一下。
P.S:回调这个异步模型虽说粗糙是粗糙了点,但同样也朴素嘛~~。ES6 yield穿来穿去,真要弄清楚执行流程,还是得画两张图才能看明白的。



Node.js向,相对深入的一本书。而Byvoid那本里一来比较简单,二来Express的版本已经超过他示例代码版本很多了,再版的话还是挺推荐作为Node.js入门读物的。


一本偏实践的书,看了这本书之后再接触Angular/Backbone什么的会开阔很多。

一本偏实践的书,看了这本书之后再接触Angular/Backbone什么的会开阔很多。



这本刚出版不久,Github上You dont know JS 系列非常精彩,但远不是一本入门书,请有了实践经验之后再读,用来巩固知识点非常好。
最后,如果苦于手边没有可以练习的代码,我推荐这个网站,有效帮助熟悉各种JS函数/Pattern/ES6 Features:



至于练手的项目, @赵望野 前辈在这里提到过一些,我觉得可以尝试而且自有裨益,当然一开始不一定能真的就顺利的实现出来,但罗马也不是一天建成的。
(Selector Engine 什么可能会比较难,AJAX Helper/Chainable Helpers 这些难度都很适中)
初学者的话:Selector Engine,AJAX Helper,Promise A+ 的 Deferred Helper,Chainable Array\String\Object Function Helpers...

至于视频方面,我个人嫌弃太慢也不太喜欢,所以不怎么了解。
最后的最后,仍然要送上一句话: 知行合一 。
用代码解决问题永远是学习编程的最好途径。
显示全部
使用道具 举报

回复

发表于 2015-7-30 19:30:01 | 显示全部楼层
其实吧,看那么多书,还真不如实操几个项目。
使用道具 举报

回复

发表于 2015-7-30 22:01:20 | 显示全部楼层
算起来也算学JavaScript一年多一点了,上面回答列的书大部分也看过。
那我来说一下我的心得体会:
个人认为:JavaScript = ECMAScript + DOM + BOM。
ECMAScript简单来说就是JavaScript基本的语法知识,比如基本数据类型、引用类型、条件语句等等。而DOM与BOM是ECMAScript赖以生存的环境(浏览器)提供的API。通过DOM、BOM,ECMAScript可以做一些网页上酷炫的效果。
所以,我我倒是觉得第一遍看《JavaScript高级程序设计》的时候,不要纠结于DOM、BOM里繁多的API和兼容性。就认真理解、吸收前七章的知识。我没说后面的内容不看,而是说对于一个初学者来说,与其花费大量的时间与精力去记忆DOM、BOM里的API,还不如认真理解函数表达式、原型等方面的知识。这本书我暑假看了两个月,结果就是啥都没记住。。。。。
不知道楼主的编程基础如何,我推荐看



可能一开始看不懂,不过没关系,这本书就是要经常翻一下。最近一本新书《JavaScript设计模式与开发实践》,我还没买,所以楼主自行分辨。
其余的书我也就不推荐了,毕竟经典的书就那么几本。
楼主你知道看书多的结果是什么吗?
就是看起来啥都知道,一写代码就傻逼。
我先分享一个面试经历:
面试官:你怎么学的前端开发?
我:看书。
面试官:看哪些书呢?
我:《XXX》、《XXX》、《XXX》、《XXX》(业内叫得出的名字的书,基本都看过。从浅入深,从jQuery到原生。)
面试官:那我让你手写几个原生JavaScript的题吧。
我:好。
……(一段时间过去了)
我:我写不出来,大致说说思路吧。叨逼叨,叨逼叨。(各种语无伦次。。)
面试官:。。。。
所以,我想说什么呢:一定要动手敲代码,一定要动手敲代码,一定要动手敲代码。
ECMAScript的基本知识就去codewars写题。
DOM就去造轮子,造哪些轮子,我也没有很好的建议。。
再添上一句吧:勤奋、勤奋、勤奋、一定要勤奋。如果你是本科生,那你就需要去和比你多敲2年代码、多学2年计算机的研究生竞争!参加了某一数字公司的公(笔)开(试)课,我是被虐的不轻。
以上。
显示全部
使用道具 举报

回复

发表于 2015-7-30 22:57:20 | 显示全部楼层
买本书,跟着书走就是了。不喜欢书,就搞个视频跟着走。反正别人的学习方法不见得合适你,自己总结。共勉。o(∩_∩)o
使用道具 举报

回复

发表于 2015-7-31 01:22:40 | 显示全部楼层
不敢说有多精通,至今仍然在努力学习中,分享一些学习心得。
《JavaScript高级程序设计》是必须要认真研读的,近两年我的这本书都快被我翻烂了。作者由浅入深编排得很好,很多技术点我可能一遍没理解,过一段时间觉得自己差不多可以去理解了然后翻出来再看一遍,所以一直到现在为止三年了我都还在这本书中吸取大量的营养。
阮一峰老师的JavaScript标准教程也很值得看,怎么说呢,可能会有些枯燥吧,因为这套教程更像是手册。不过好在作者强悍的文字功底让学习这些标准的API变得不那么困难和枯燥。至今仍然在学习中。
另外妙味课堂的视频教程也不错,我为什么会说到妙味课堂呢?虽然市面上JS的视频教程很多吧,但是确实很少有哪个机构能做到跟妙味课堂一样系统全面的。大量的视频教程涵盖了前端开发的方方面面,JS尤其多!
JS是一门实战性特别强的语言吧,你可能理解了很多很多理论知识,但是也写不出特效来,所以在学习的过程中还是需要不断地、反复的练习加琢磨。看到别人网站里面好的特效或者技术,自己反复研究,这样就变成自己的东西啦。最后祝楼主学习JS愉快!
使用道具 举报

回复

发表于 2015-7-31 03:26:09 | 显示全部楼层
如果你有编程基础,那就从dom开始学起,之后学函数,闭包,继承,等等…最好就是买一本《JavaScript高级编程》,那本书介绍得很详细,很适合入门。
使用道具 举报

回复

发表于 2015-7-31 05:31:37 | 显示全部楼层
《JavaScript高级程序设计》
《JavaScript面向对象编程指南》
《javascript面向对象精要》
《javascript模式》
《javascript设计模式与开发实践》
看underscore源代码
《jquery技术内幕》
最关键的是要练习,找点小项目做做
使用道具 举报

回复

发表于 2015-7-31 07:26:38 | 显示全部楼层
名字叫对再说:javascript.
使用道具 举报

回复

发表于 2015-7-31 07:45:42 | 显示全部楼层
推荐书单一份
1、高级——JavaScript框架设计

JavaScript框架设计
司徒正美 (作者)
书  号978-7-115-34358-1
出版日期2014-04-01
页  数445
《JavaScript框架设计》是一本全面讲解JavaScript框架设计的图书,详细地讲解了设计框架需要具备的知识,主要包括的内容为:框架与库、JavaScript框架分类、JavaScript框架的主要功能、种子模块、模块加载系统、语言模块、浏览器嗅探与特征侦测、样式的支持侦测、类工厂、JavaScript对类的支撑、选择器引擎、浏览器内置的寻找元素的方法、节点模块、一些有趣的元素节点、数据缓存系统、样式模块、个别样式的特殊处理、属性模块、jQuery的属性系统、事件系统、异步处理、JavaScript异步处理的前景、数据交互模块、一个完整的Ajax实现、动画引擎、API的设计、插件化、当前主流MVVM框架介绍、监控数组与子模板等。

2、高级——JavaScript设计模式

JavaScript设计模式
[美]Addy Osmani (作者)
徐涛 (译者)
书  号978-7-115-31454-3
出版日期2013-06-01
页  数241
《JavaScript设计模式》是JavaScript设计模式的学习指南。全书分为14章。首先介绍了什么是模式、模式的结构、类别、模式的分类、如何编写模式等等;然后,集中介绍了很多流行的设计模式在JavaScript中的应用,包括Module(模块)模式、Observer(观察者)模式、Facade(外观)模式和Mediator(中介者)模式;最后,还探讨了模块化的JavaScript模式、jQuery及其插件中的设计模式。



3、高级——单页Web应用:JavaScript从前端到后端

单页Web应用:JavaScript从前端到后端
[美]Michael S. Mikowski , [美]Josh C. Powell (作者)
包勇明 (译者)
书  号978-7-115-36362-6
出版日期2014-10-01
页  数388
《单页Web应用:JavaScript从前端到后端》大约三分之二的内容专门讲解单页Web应用的客户端开发,先定义何为JavaScript单页应用,接着介绍书中使用的单页Web应用的架构,然后依次讲解Shell模块、功能模块、Model模块、Data模块和Fake模块等,其中还专门拿出一整章讲解开发单页Web应用时需要掌握的JavaScript概念和特性;剩下三分之一的内容讲解单页Web应用的服务器端开发和其他与单页Web应用相关的知识,如Node.js、MongoDB、CDN、搜索引擎优化、数据分析、错误日志以及各个层级的缓存等。本书最后的两个附录分别介绍JavaScript的编码规范和单页Web应用的测试。



4、高级——JavaScript面向对象精要
JavaScript面向对象精要
[美]Nicholas C. Zakas (作者)
胡世杰 (译者)
书  号978-7-115-38384-6
出版日期2014-04-01
页  数98
本书内容简洁而精妙。全书共5章,分别深入探讨了原始类型和引用类型、函数、对象、构造函数和原型对象、继承和对象模式等主题和特性。在本书中,你将学到JavaScript独特的面向对象的编程方式;抛弃类的概念和基于类的继承,学到基于原型的继承和构造函数。你将学会如何创建对象,定义自己的类型,使用继承以及其它各种操作来充分使用对象。总而言之,你将学到理解和专业编程JavaScript所需知的一切。
作者简介:
Nicholas C. Zakas是Box公司的一位软件工程师。他因JavaScript最佳实践的写作和演讲而知名。在此之前,作为Yahoo!主页的资深前端工程师,他在雅虎工作了5年。他写了数本著名的JavaScript技术图书,包括《编写可维护的JavaScript》(见第四本书)、《JavaScript高级程序设计》等。



5、中级——编写可维护的JavaScript
编写可维护的JavaScript
[美]Nicholas C. Zakas (作者)
李晶 , 郭凯 , 张散集 (译者)
书  号978-7-115-31008-8
出版日期2013-04-01
页  数227
《编写可维护的JavaScript》作者Nicholas C. Zakas是顶级的Web技术专家,也是《JavaScript高级程序设计》一书的作者。他曾是Yahoo!的首席前端开发工程师,在完成了从一名“独行侠”到“团队精英”的蜕变后,他站在前端工程师的角度提炼出众多的最佳编程实践,其中包括很多业内权威所推崇的最佳法则,而这些宝贵经验正是本书的核心内容。



6、中级——JavaScript面向对象编程指南(第2版)
JavaScript面向对象编程指南(第2版)
[加拿大]Stoyan Stefanov (作者)
陆禹淳 , 凌杰 (译者)
书  号978-7-115-37270-3
出版日期2015-01-01
页  数352
本书是《JavaScript面向对象编程指南》的第二版,全书包括8章和4个附录。依次介绍了JavaScript的发展历史、基础性话题(变量、数据类型、数组、循环以及条件表达式)、函数、对象、原型、继承的实现、BOM和DOM等。附录部分包括了学习JavaScript编程常用的参考资源。尤其值得一提的是,本书作者是JavaScript设计模式方面的专家,他在本书第8章中介绍了几种常用的JavaScript编程模式,这也成为他的另一本重要著作《JavaScript模式》(JavaScript Patterns)奠定了基础。



7、中级——编写可测试的JavaScript代码
编写可测试的JavaScript代码
[美]Mark Ethan Trostler (作者)
徐涛 (译者)
书  号978-7-115-37337-3
出版日期2015-02-01
页  数247
本书的目标是教授如何为客户端和服务器编写和维护可测试的JavaScript代码。全书共8章。首先介绍了什么是可测试的代码,然后分别从代码复杂度、架构、单元测试、代码覆盖率、集成测试、性能测试、负载测试、调试和自动化等角度详细介绍。书中丰富的示例能够帮助读者从头开始养成好的代码编写习惯,提升测试效率及代码的可维护性。
本书的作者曾先后在YouTube、Yahoo!以及Google等公司从事前端开发及测试相关工作,具有丰富的经验。本书主要针对那些想成为JavaScript专业开发人员的人;也适合初中级水平或者专家级别的开发人员参考阅读。



8、入 门——JavaScript入门经典(第5版)

JavaScript入门经典(第5版)
[美]Michael Moncur (作者)
王军 (译者)
书  号978-7-115-28596-6
出版日期2012-07-01
页  数384
《JavaScript入门经典(第4版)(修订版)》详细介绍了JavaScript编程。全书共分为24章,分别介绍了Web脚本编写和JavaScript语言的概念、JavaScript的基础知识、文档对象模型、JavaScript的高级功能、使用JavaScript创建多媒体应用程序及创建复杂脚本的技巧等知识。其中,每章内容均以前一章内容为基础。书中提供了简单直接的操作方法,读者能够从基础知识开始领会JavaScript编程的精髓。除了基本内容外,书中还提供了大量解决问题的说明、解决方案、提示信息等内容。另外在每一章的后面,还附加有实践练习、测试题和练习题,以便加深读者对基本概念的理解。



9、入 门——HTML5+JavaScript动画基础
HTML5+JavaScript动画基础
[美]Billy Lamberta , Keith Peters (作者)
徐宁 , 李强 (译者)
书  号978-7-115-31547-2
出版日期2013-06-01
页  数393
《HTML5+JavaScript动画基础》包括了基础知识、基础动画、高级动画、3D动画和其他技术5大部分,分别介绍了动画的基本概念、动画的JavaScript基础、动画中的三角学、渲染技术、速度向量和加速度、边界与摩擦力、用户交互:移动物体、缓动与弹动、碰撞检测、坐标旋转与斜面反弹、撞球物理、粒子与万有引力、正向运动学:让事物行走、反向运动学:拖曳与伸出、三维基础、三维线条与填充、背面剔除与三维灯光、矩阵数学、秘诀与技巧等内容。



10、入 门——JavaScript启示录

JavaScript启示录
[美]Cody Lindley (作者)
徐涛 (译者)
书  号978-7-115-33494-7
出版日期2014-03-01
页  数127
《JavaScript启示录》力图在有限的篇幅内,通过考察原生JavaScript对象和所支持的细微差别,来给读者展现准确的JavaScript世界观,涉及对象、属性、复杂值、原始值、作用域、继承、this关键字、head对象等重要概念。本书帮助读者厘清这些概念,进而掌握应用它们的技术和技巧。


扩展阅读
优秀的前端工程师需要具备良好的沟通能力,因为你的工作与很多人的工作息息相关。在任何情况下,前端工程师至少都要满足下列四类客户的需求。
产品经理——这些是负责策划应用程序的一群人。他们能够想象出怎样通过应用程序来满足用户需求,以及怎样通过他们设计的模式赚到钱(但愿如此)。一般来说,这些人追求的是丰富的功能。
推荐图书:
~ 产品经理的20堂必修课
~ 抓住听众心理:演讲者要知道的100件事
~ UCD火花集2:有效的互联网产品设计 交互/信息设计 用户研究讨论
~ 极客与团队

UI设计师——这些人负责应用程序的视觉设计和交互模拟。他们关心的是用户对什么敏感、交互的一贯性以及整体的好用性。他们热衷于流畅靓丽但并不容易实现的用户界面。

推荐图书:
~ 众妙之门系列图书
项目经理——这些人负责实际地运行和维护应用程序。项目管理的主要关注点,无外乎正常运行时间(uptime)——应用程序始终正常可用的时间、性能和截止日期。项目经理追求的目标往往是尽量保持事情的简单化,以及不在升级更新时引入新问题。
最终用户——当然是应用程序的主要消费者。尽管我们不会经常与最终用户打交道,但他们的反馈意见至关重要;没人想用的应用程序毫无价值。最终用户要求最多的就是对个人有用的功能,以及竞争性产品所具备的功能。
显示全部
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部