数据类型的分类
ECMAScript数据类型具有动态性,即松散性。
基本数据类型
- Undefined:未对变量进行初始化或初始化赋值为undefined,实质上undefined值派生至null
- Null:当变量值引用类型为null时
- Boolean:当变量值为true/false或自动转化为布尔类型时
- Number:当变量的值为整数、浮点数时
- String:当变量值为0或多个16位Unicode字符组成的字符序列
复杂数据类型
- Object:变量值为一组数据和功能的集合
数据类型的自动转化
- 其它数据类型转化为布尔类型
数据类型 | 转换为true的值 | 转换为false的值 |
---|---|---|
Boolean | true | false |
String | 任何非空字符串 | “”(空字符串) |
Number | 任何非零数字值(包括无穷大) | 0与NaN |
Object | 任何对象 | null |
Undefined | 不适用 | undefined |
2.其它数据类型转化为数值类型(注:计算机默认存储为二进制,输出为十进制)
①、整数的转化(各进制中开头注明符号不区分大小写):
-
十进制→十进制(不处理)
-
八进制→十进制(以0开头,若字面值中的数值超出范围,前导零将被忽略,且编译器会报错,例059→59)
-
十六进制→十进制(以0x开头,若字面值中的数值超出范围,编译器报错且不会显示出值)
-
二进制→十进制(以0b开头,若字面值中的数值超出范围,编译器会报错且不会显示出值)
②、浮点数值的转化(浮点数值的存储空间是整数值存储空间的两倍) -
科学计数法:用于处理那些极大或极小的数值;例:
3.125e7==31250000;3e-7=0.0000003;浮点数值的最高精度为17位数字,可以使用将float→double解决精度溢出问题。
③、ECMAScritp能够存储的极致数值保存在Number.MIN_VALUE =5e-324 (-Infinity负无穷)与Number.MAX_VALUE=1.7976931348623157e+308(Infinity正无穷) 。
④、NaN:表示一个特殊数值的非数值,用于表示一个本来要返回数值的操作数但未返回数值的情况(这样将不会抛出错误)。特点:任何涉及NaN的操作都会返回NaN;NAN与任何值都不相等,包括NaN
⑤、转换规则: -
Boolean中,true→1 false→0
-
如果是数字,只是简单的传入和返回
-
null→0
-
undefined→NaN
-
如果字符串中只包含数字(前面带正号与负号的情况),转换为十进制,忽略前导的零
-
如果带有浮点格式,将其转化为对应的浮点数值,忽略前导零
-
有效的十六进制→十进制
-
空字符串转换为0
-
字符串中包含其它特殊字符将转换为NaN
-
如果是对象,先调用valueOf办法,如果转换结果为NaN则将调用toString办法。
3.其它数据类型转换为字符串类型 -
默认将五种基本数据类型转换为相同类型的字符串类型
-
复杂数据类型:
数组 : 将数组的数据内容,转化为字符串,执行拼接操作
对象 : 任何的对象,都转化为 字符串 [object Object] , 执行拼接操作
函数 : 将函数所有的代码,都转化为字符串,执行拼接操作
–逆战班