最近一段时间又把JS捡起来重新学习,以前总是半途而废,这次应该冇问题。
这是最近的一个成果:Catch Gold (一个接金币的小游戏,源代码),使用了 Crafty 这个框架做的,有点杀鸡用牛刀了,不过也有很多收获。
- setTimeout直接传不了变量,我用了一个函数做了中转,还有很多高招,后面再研究;
- -webkit-transform: translate3d(370px, 322px, 0)用来移动;
- DEMO在一个没给图片设置CACHE的服务器上跑时移动一次就会去服务器请求一次,好蛋痛的141服务器;
- JSter是个收集JS框架的好站,这次用的Crafty在上面游戏类排行老二,排第一的还要用Python来编译,麻烦。Crafty的语法和JQuery类似,易上手;
- Crafty站的文档有错误,this.css({‘text-align’, ‘center’, font: ‘Arial’}); 这里第一个逗号应该是冒号;
- 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吧。 好了,年前最后一篇写完了,大家新春愉快。
“in用来判断是否有某个属性,产生布尔值”不建议用a in x的方法,推荐的是typeof x.a === “undefined”
啊,感谢,有空多来指导我啊。
我也是菜鸟……话说jsbin注册登录后就可以保存所有的记录了呀
O(∩_∩)O~