导读:我发现不管是哪一门语言,都会先介绍其发展,语法规则,数据类型,流程控制等。那么,这次,就介绍一下JavaScript中的数据类型,有些看着眼熟,有些不熟。熟的也不是之前认识的,不熟的,也不见得就没见过。
一、总体概览
JavaScript中,在目前的学习阶段,大致了解了6个数据类型:Undefined类型,Null类型,Boolean类型,Number类型,String类型,Object类型。在这之中,除开第一、第二和最后一个在之前接触的相对较少,剩下的算是接触的比较多的。所以,从整体上看来,新知识的比例不大,学习起来没太大的难度。
1,1,图示1(无Number类型)
1.1.1,图示说明
1.1.1.1,Undefined、Null、Object的关系
Null:表示一个空对象引用(指针)。Undefined派生自Null,Null派生自Object。Null的值是属于Null类型,但当其用typeof操作符检测时,会返回Object。
1.1.1.2,true=1,false=0
这是不一定的,就是说当var box=true,alert(box==1),这时候,返回的是true。说明这时候,true=1。但是当alert(box===1)或者 alert(typeof box==typeof 1)时,这时候返回false,说明这时候,true不等于1。这是因为,这时候box是布尔型,而1是数值型,在恒等(值和类型都相等)时,它们就不相等了。所以说,true不一定等于1。
1.1.1.3,布尔值转换规则
NaN:Not a Number,是一个特殊的值,用于表示一个本来要返回数值的操作数未返回数值的情况。也就是类型转换失败,所以,这时候,bool转换返回的也是false。
1.1.1.4,字符串转义字符
1.2,图示2(Number类型)
1.2.1,图示说明
1.2.1.1,数值定义规范
注意:有效序列,基数,前导。
1.2.1.2,对象类型的数值转换
当对象类型的数值进行转换时(空或非空),其首先通过ValueOf()函数,判断对象类型是否为数值,当返回值=NaN时,则继续调用其toString()函数,继续判断。
PS:其实对象类型的肯定会返回NaN,但在对象类型转换时,其内部机制是这样使用,而不是由肉眼看到的直接进行转换。
二、注意事项
1,当进行字符串转换时,如果不知道数据类型是否为Undefined或Null,那么将启用String()方法,而不是toString()方法。String()方法比之toString()方法更为强大,它能将所有的类型转换为字符串。
2,Number()是转型函数,可用于任何数据类型。而parseInt()和parseFloat()则专门用于将字符串转为数值。
2.1,parseInt()和parseFloat()的对比
2.1.1,相同点
1,都是专门用于将字符串转为数值的函数
2,从第一个数值开始,最后一个连续数值结束。如:“12.12Angel12”,parseInt()返回12,parseFloat()返回12.12。
3,均从字符串的第一位开始解析
4,自动去掉前置空格
2.1.2,不同点
1,parseInt(),小数点非数值,直接去掉;parseFloat()只识别第一个小数点。
2,parseFloat()不识别十六进制。
3,parseInt()可提供2个参数:第一个,待转换的字符;第二个,欲转换的进制基数。如:parseInt(“70”,“8”),将返回8进制的结果:56.
三、学习感受
每种语言的数据类型,都有雷同之处,但也都有其不同之处。这是外面的东西,而在每种语言之中,也存在着数据类型之间的联系和应用间的区别,及时总结很重要。其实,基本知识的罗列,也是学习中很关键的一步。数据类型总结完了,发现新东西不多,很多都可以用上以前的知识,把新东西放到旧东西里面去,学习起来更轻松。