《JavaScript语言精髓与编程实践》读书笔记一

受到狗哥书单的影响,看到了豆瓣上的评论,买了这本书,然后囫囵吞枣似地用一个月的时间看完了。回头想想自己做的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. 运算符的二义性(有些在其他语句中同样适用):(){}[]等在不同位置的意义不同。

这本书的特点在这就能看出来了,讲了一些其他书里面没有讲过的事情。就比如说二义性这种东西,其实在不同的语言里面都有,但是没看到有哪些书拿出来说过(是因为自己读书少…),这里看了以后还是挺长见识的。本想用一篇文章总结完这些,但是弄完前两章感觉不是那么简单了。所以慢慢搞好了!

原文地址:https://www.cnblogs.com/qoshi/p/3447201.html