四周搞定《JavaScript 高级程序设计》 - 读书笔记(Day 03)

第三章的篇幅暴涨到50页,读写起来也真是蛮累的。

不过本章正如标题那样,是很多基础概念的解释,尤其是数据类型和函数两个小节,是基础中的基础,反复理解吃透很重要。除了书中的一些解读,查阅一些其他资料也是必要的。

数据类型

前面写过一篇文章《JavaScript 中的数据类型》,对这个知识点进行了一些扩充,因为本书成书较早,可以结合一起看看新增加的类型。

另外要注意 JavaScript 中数据类型占用的内存大小,在 StackOverflow 上看到一个问题,做实验验证的时候可以参考。

以下两个函数的使用说明引自http://www.w3school.com.cn/js/pro_js_typeconversion.asp

Boolean() 函数

当要转换的值是至少有一个字符的字符串、非 0 数字或对象时,Boolean() 函数将返回true。如果该值是空字符串、数字 0、undefinednull,它将返回 false
可以用下面的代码测试 Boolean 型的强制类型转换:

var b1 = Boolean("");       // false - 空字符串
var b2 = Boolean("hello");      // true - 非空字符串
var b1 = Boolean(50);       // true - 非零数字
var b1 = Boolean(null);     // false - null
var b1 = Boolean(0);        // false - 零
var b1 = Boolean(new object()); // true - 对象

Number() 函数

Number() 函数的强制类型转换与 parseInt()parseFloat() 方法的处理方式相似,只是它转换的是整个值,而不是部分值。

还记得吗,parseInt()parseFloat() 方法只转换第一个无效字符之前的字符串,因此 "1.2.3" 将分别被转换为 "1" 和 "1.2"。

用 Number() 进行强制类型转换,"1.2.3" 将返回 NaN,因为整个字符串值不能转换成数字。如果字符串值能被完整地转换,Number() 将判断是调用 parseInt() 方法还是 parseFloat() 方法。

下表说明了对不同的值调用 Number() 方法会发生的情况:

用法 结果
Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number("1.2") 1.2
Number("12") 12
Number("1.2.3") NaN
Number(new object()) NaN
Number(50) 50

最后

以后这个系列的每篇文章不一定对每章都做个总结,会调出一些重点的地方做个简单补充,也不排除后期继续加入修订的可能。

四周搞定《JavaScript 高级程序设计》 - 读书笔记(Day 03)_第1张图片

你可能感兴趣的:(四周搞定《JavaScript 高级程序设计》 - 读书笔记(Day 03))