我看的是第3版,豆瓣链接如下:http://book.douban.com/subject/10546125/
这本书真真写得好~强烈推荐初学Web前端的小伙伴阅读哦!
整理了一些我认为重要且还没记住的知识点,可能比较零碎~
第一章
- JavaScript由三部分组成:
ECMAScript
、DOM
文档对象模型、BOM
浏览器对象模型 - DOM把整个页面映射为一个多层节点结构
第二章
<script>
defer与async属性
相同点
- 只适用于外部脚本文件
不同点
- defer是延迟脚本。立即下载,延迟到浏览器遇到
</html>
后才执行。第一个延迟脚本会先于第二个延迟脚本执行(HTML5是这样规定的,但实际情况不一定><) - async是异步脚本。立即下载,异步加载页面其他内容。第二个脚本文件可能会在第一个脚本文件之前执行,因此要确保两者之间互不依赖。
<noscript>
<body>
<noscript>
本页面需要浏览器支持(启用)JavaScript
</noscript>
</body>
只有不支持或未开启JavaScript的浏览器才能看到这句话。
第三章
- 注释与C语言相通:
//单行注释
、/*多行注释*/
- JavaScript区分大小写
变量
var message="hi"; //局部变量
message="hi"; //全局变量
undefined
声明了变量但未初始化,则值为undefined
,如果连声明都没有就直接用,会报错。
无论什么情况下,都没必要把变量的值显式地设置为undefined
,这个规则对null
不适用。
var message;
alert(message); //"undefined"
alert(age); //产生错误
null
如果变量在将来用于保存对象,最好初始化为null
而不是其他值,这样直接检查null值,就可以知道相应的变量是否已保存了一个对象的引用,也有助于区分null
和undefined
。
alert(null==undefined); //true
Boolean
值与数字值无关,true不一定等于1,false不一定等于0
数据类型 | 转换为true的值 | 转换为false的值 |
---|---|---|
Boolean | true | false |
String | 任何非空字符串 | “”(空字符串) |
Number | 任何非零数字值(包括无穷大) | 0和NaN(非数值) |
Object | 任何对象 | null |
Undefined | / | undefined |