学习《Head First JavaScript Programming》

开始学习Head First 系列的JavaScript教材,争取每天一章,下载了英文版的PDF电子版,睡前打印好第二天要看的那一章,争取尽快学完,对js有一个大致的印象。

更新记录:


  • 2015年4月21日

看了第三章


  • 2015年4月22日

chapter 4 完成!保持一天一章的进度,再过9天就可以看完这本书咯~~~


  • 2015年4月23日

第五章 over!这章讲了JS里的object,还有它里面的property和method,没想到console竟然也是一个object,而console.log();就是在调用console下面的一个叫log的method,好神奇!


  • 2015年4月24日

第六章完工!那么这一整本书就还剩下一半了,`(*∩_∩*)′


  • 2015年4月27日

第七章结束,讲的是一些代码规范,有些无聊不过学学还是有用的。嘻嘻,起码知道==和===还有!=和!==的区别了,加油!


  • 2015年4月28日

第八章看完了,动手做了一个小“游戏”,发现bug请不要喷我 #-_-


  • 2015年4月29日

第九章over,学了handling events,其实应该是和第六章讲dom连着的,就是接受浏览器传来的从用户那里收集到的信息,比如用户点击某处后,触发一段你事先写好的程序之类的,跟着书上也做了个小damo,稍微改了改 -> http://t.cn/RAnZNEs


  • 2015年5月2日

chapter 11 完成!这章主要讲了anonymous function和closure,发现越往后看越难哎,不过还好只剩下两章了 :p 加油!


  • 2015年5月3日

学了chapter12,是和第五章讲object有联系的,讲了创建object的两种方法:object literal和object constructors,主要讲了后者,用它可以批量创建相似的object,很方便的!


  • 2015年5月4日

13章over,这是这本书的最后一章了,这么厚一本书学完一共用了12天,看来程序猿大师计划还是可行的,接下来开始看imooc上的三个js教程,加油!


【阶段性总结】总结(2015.5.5)

 

昨天终于看完了这本书,来写个小总结。

这个系列的书很棒,通过做一些很有趣比喻来阐述道理,然后通过让你动手做一些有趣的例子来掌握知识。一章一章的看下去就像是在打游戏,能明显感觉到自己的经验值在一点一点的提高。

Chapter1: Getting your feet wet

  • js的发展历史
  • 变量
  • while循环
  • if语句
  • console.log

Chapter2: Going further

  • 了解了js的开发逻辑
  • 做了第八章的battleship游戏的一个简化版

Chapter3: Getting functional

  • function的创建方法
  • 调用function的方法
  • argument和parameter的区别
  • global var和local var

Chapter4: Arrays

  • 创建、使用和更新array的方法
  • 做了一个Bubbles-R-Us的案例(计算一组数中最大的是多少,以及是第几个)

Chapter5: A trip to Objectiville

  • 介绍了object-oriented(第一次接触这个概念,感觉很神奇也很有用)
  • 创建object的方法
  • 把object和function结合起来使用
  • object的propertie的添加,删除,获取,修改和计算
  • object的method的添加,调用方法
  • propertie和method可以互相影响(汽车的油量(propertie)可以决定该车是否可以启动(method),而汽车启动后(method),又可以减少该车的油量(propertie))
  • this.的工作原理

Chapter6: Getting to know the DOM

  • 讲了js如何和html页面互动
  • 每个页面的dom结构
  • getElementById()
  • innerHTML
  • setAttribute
  • 最后说了下event handler

Chapter7: Serious types

  • undefined
  • null
  • NaN
  • = / == / === 区别
  • 两个boolean值:truth和false,以及类似的truthy和falsey
  • string的一些properties和methods(.length/.charAt()/.indexOf()/.substring()/.split())

Chapter8: Building an app

  • 用之前学过的所有知识,做一个第二章battleship的完整版web游戏
  • 这应该是我用js做的第一个web应用,学到了好多:http://happyhome.me/temp/battleship_game.html

Chapter9: Handing events

  • 提到了浏览器的很多event(load/click/resize/mousemove/mouseover/mouseout/keypress)
  • 根据这些event来触发不同的function
  • 做了第二个“游戏”#-_- http://happyhome.me/temp/chapter9/blur.html

Chapter10: Liberated functions

  • function declaration
  • function expression
  • 如何把一个function赋值给另一个function

Chapter11: Serious functions

  • 讲了下nest function(方程里面的方程)
  • nest function的global scope和local scope
  • referencing environment
  • closure的三种创建方法(1.returning a function from a function/ 2.passing a function expression as an argument/ 3.with an event handler)

Chapter12: Creating objects

  • 结合第五章,讲了object的第二种创建方法:constructor(批量创建)
  • 创建和使用constructor的方法
  • 解释了每一个用constructor创建的object都是他的一个object instances(很有趣的概念)

Chapter13: Extra strength objects

  • 讲了object的prototype和它的原理(更加神奇的一个东西)
  • 如何创建一个prototype
  • 关于prototype的一个很重要的概念: inherit(每一个constructor创建出的instances可以有不止一个的prototype)
一本书学完,没想到自己竟然已经掌握了这么多知识点了,好高兴,不过这只是刚刚开始,后面学习js的路还有很长,正则表达式,jQuery,JSON,Node.js等等知识这本书里都没有提到,还需要继续学习,还有就是要多敲代码咯,多实践。
相信有一天,我一定可以用js轻松的开发出我脑海中那些的奇葩的产品的,加油!

发表评论