摘要
关于《JavaScript高级程序设计》中的事例代码可在附件中查看。
第二章 <script>元素
defer属性
设置defer="defer",脚本会被延迟到整个页面都解析完毕后在运行,多个延迟脚本并不一定会按照先后顺序执行。
async属性
设置async="async",异步加载脚本内容,但是多个异步脚本之间并不一定会按照先后顺序执行。
<noscript>元素
该元素可以包含能够出现在<body>中的任何html元素(script除外),只有当浏览器不支持脚本或者支持脚本,但是脚本被禁用时,浏览器才会显示<noscript>中的内容。
第三章 基本概念
typeof操作符
typeof是一个操作符,能够返回该数据的数据类型。但是注意其中对于基本类型,除null(返回Object,null被认为是一个空的对象引用)以外,均可以返回正确的结果;对于引用类型,除function(返回Function)以外,一律返回 object 类型。
Number类型
JS中将最小值保存在Number.MIN_VALUE中,值为5e-324;将最大值保存在Number.MAX_VALUE中,值为1.7976931348623157e+308。如果某次计算的值超过这个范围,这个值就会自动转换为特殊的Infinity值(Infinity为正无穷,-Infinity为负无穷),使用isFinite()可以判断一个值是否为有穷。
NaN即非数值,涉及NaN的操作都会返回NaN并且NaN与任何值都不相等,包括NaN本身。isNaN()函数接受一个参数,能够判断这个参数是否“不是数值”。NaN也适用于对象,首先调用对象的valueOf(),然后确定返回值是否可以转换为数值,如果不能,则基于这个返回值在调用toString(),在测试返回值。
Number()、parseInt()、parseFloat()三个函数能够将非数值转换为数值:
- Number():将任何数据类型转换为数值。null值转换为0;undefined转换为NaN;空字符串转换为0。
- parseInt():将字符串转换为数值。空字符串转换为NaN。接受第二个参数设置转换时的进制。
- parseFloat():将字符串转换为数值,能够解析十进制。
String类型
将一个值转换为String有两种方法。
- 通过toString()方法:每个值都存在toString()方法,返回相应值的字符串表现(null与undefined没有这个方法)。在调用数值的toString()时,可以传递一个参数,用来指定输出数值的进制基数。
- 使用转型函数String(),如果值存在toString()方法,返回toString()相应的结果,而null与undefined返回“null”与“undefined”。