受到狗哥书单的影响,看到了豆瓣上的评论,买了这本书,然后囫囵吞枣似地用一个月的时间看完了。回头想想自己做的js项目,感觉都羞愧…什么东西都是拿来尝试了一下就用了,其实有很多写得超级丑的地方,看完这个让我对本来不太喜欢的前端技术,又产生了一些好感,于是又打算找点时间看一下css和html5的东西,因为实验室接下来要做这些了。
接下来就是干货了。
第一章:
讲了一下JS这十年来的历程,惭愧的是一点都没记住,只是知道JS的引擎有好多种,不同引擎对应的语法有细微的差别。还有就是平时的不同浏览器,出去引擎不同之外,宿主环境导致可以操作的对象不同,比如说windows的ActivxX控件等等。
第二章(语法):
1. NaN是唯一与自身不等值的家伙
2. Function() {} 没有函数名字的函数叫做匿名函数
3. ==的比较 比较引用类型时比较引用的地址是否相等
4. ===比较时先比较类型,再比较数值
5. 字符串与其他类型比较时,将字符串转换为数值
6. 语句(除去声明语句、空语句、控制语句)存在返回值,由最后一个子句的值决定
7. eval()返回最后一个执行到的,有返回值的语句的值
8. 隐式生命的变量总是全局变量
9. 匿名函数的三种调用:
(function(){}());
(function(){})();
Void function(){}();
10. finally中的语句在try中的语句return/break之前调用
11. new 后面可以跟constructor 或者返回对象的函数
12. delete不能删除var声明的成员和直接继承自原型的成员
13. 严格模式”use strict”:
0:变量声明必须有var
1:对象直接量声明中若有相同属性名,将以最后一个为准
2:函数的生命中,参数表中带有相同的参数名认为最后一个有效
3:不能声明或者重写eval和arguments两个标示符
4:使用0前缀表示8进制直接量
5:用delete删除显示生命的标示符、名称、或具名函数会抛出异常
6:禁止使用一些保留字:implements,interface,let,package,private,protected,public,static,yield等
7:禁止使用with语句
14. 运算符的二义性(有些在其他语句中同样适用):(){}[]等在不同位置的意义不同。
这本书的特点在这就能看出来了,讲了一些其他书里面没有讲过的事情。就比如说二义性这种东西,其实在不同的语言里面都有,但是没看到有哪些书拿出来说过(是因为自己读书少…),这里看了以后还是挺长见识的。本想用一篇文章总结完这些,但是弄完前两章感觉不是那么简单了。所以慢慢搞好了!