最近一段时间又把JS捡起来重新学习,以前总是半途而废,这次应该冇问题。

这是最近的一个成果:Catch Gold (一个接金币的小游戏,源代码),使用了 Crafty 这个框架做的,有点杀鸡用牛刀了,不过也有很多收获。

  1. setTimeout直接传不了变量,我用了一个函数做了中转,还有很多高招,后面再研究;
  2. -webkit-transform: translate3d(370px, 322px, 0)用来移动;
  3. DEMO在一个没给图片设置CACHE的服务器上跑时移动一次就会去服务器请求一次,好蛋痛的141服务器;
  4. JSter是个收集JS框架的好站,这次用的Crafty在上面游戏类排行老二,排第一的还要用Python来编译,麻烦。Crafty的语法和JQuery类似,易上手;
  5. Crafty站的文档有错误,this.css({‘text-align’, ‘center’, font: ‘Arial’}); 这里第一个逗号应该是冒号;
  6. TortoiseGit用起来太方便了,Github可以玩了;


最近学习过程是先把 CodeCademy JS类的课全通关,JQ随手也通关了,有个初步的了解。

然后买了《JavaScript编程精解》来读,很薄的一本书不到200页,之前有本王者归来700多页我就一起读不下去,现在读起来很有成就感,毕竟现在是网络时代了,看到哪里不懂就上网搜索下就可以深入,所以学习类的书还是薄点好,只要写得能激发我去深入就OK。

当然只读是不行的,知乎上的 herock学技术的方法 很好,就是把书上的代码全都敲一遍。对我很管用,当然也要找个好地方敲,JSbin 自带语法检测和Console,是个敲代码的好地方。

以下是些笔记:

  • 合并同类项一样的写逻辑
  • 全局变量
  • IE6、7下,用数组拼接字符串快
  • 循环中不要现取值,提前把值取好,同时也可以用var i = (最大值);i–提升性能
  • setTimeout与setInterval原理与线程有关,前者重复执行,后者排队,参数不要用字符串,有漏洞
  • 逗号运算符,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。
  • 改变“世界”的语句
  • “环境” 副本
  • ‘Z’ < ‘a’ 是 true ,基于Unicode标准比大小
  • && || 先左后右
  • 执行语句前,先查找所有function并保存,所以function可放在下面
  • 函数不定义return,哪返回值是 undefined
  • 词法作用域
  • 函数是唯一能创建新作用域的地方
  • 栈:函数体运行时,计算机必须记信调用该函数的上下文,以便知道之后从哪里继续。存放上下文的地方就是栈。
  • 函数都是值,JavaScript里的所有东西都是值
  • 闭包:包裹一些局部变量的一个函数叫做一个闭包,return 的function可调用局部变量
  • 避免重复:1、是否需要函数;2、最佳的函数是只处理单个简单行为的函数,很容易命名并可以用于各种场景;3、在明确自己需要该函数前,不要自作聪明!
  • 纯函数
  • 递归:就是for while循环的变种
  • 属性,如:length 大多数是固定属性,不能进行修改
  • 对象值:可自行增删改 delete 删除属性,没这个属性时返回undefined ; in 用来判断是否有某个属性,产生布尔值
  • 比较日期先用getTime()转化
  • 错误处理
  • 使用catch显式处理异常时,一定不要catch太多内容
  • 操作其他函数的函数称为高阶函数
  • 加法是一个操作符而非函数
  • reduce函数通过重复调用一个函数(该函数将数组的每个元素值都加到一个基值上)将数组转化为单一的值
  • 归约、映射都是算法
  • element === 0 ? 1 : 0 三元操作符(三目表达式)

JSbin虽好,就是不方便找以前写的代码,后面我应该会迁移到Github吧。

好了,年前最后一篇写完了,大家新春愉快。