1.其他数据类型转换为String
- toString()函数
除了null,undefined,其他三种基本数据类型的变量均有一个toString()方法
如果这个值为number类型,那么tostring()可以接受一个参数(2、8、10、16),默认转化为10进制
- String()函数 包装器、转换器
可以将其他任意基本数据类型的值转换为字符串,包括null,undefined
- 拼接空字符串 +""
2.其他数据类型转换为Boolean
- Boolean() 包装器
任意其他数据类型都可以转换为布尔类型
Boolean | true | false |
---|---|---|
String | 非空字符串 | ' '空字符串 |
Number | 任何非0 | 0/NaN |
Object | 任何对象 | null |
Undefined | 不适用 | undefined |
- 使用两次逻辑非(!!)转换
3.其他数据类型转换为Number
- Number() 包装器、转换器
1) 如果转换的值是null,undefined,boolean,number
Number(true); //1
Number(false); //0
Number(null); //0
Number(undefined); //NaN
Number(10); //10 如果是数字值,原样输出
2) 如果转换的值是string
Number("123"); //如果仅包含数值,转换为对应的数值
Number("234.1"); //解析为对应的小数
Number("+12.1"); //首位为符号位,其余为为数值,转换为对应的数值
Number("1+2.3"); // NaN 符号位出现在其他位置,解析为NaN
Number("0xa"); //10 如果仅包含十六进制格式,转为为对应的十进制的值
Number("010"); //10【注意】不会当做八进制被解析,结果为10。
Number(""); // 0 空字符串被转换为0
Number("123ac"); // NaN 包含其他字符: NaN
Number(“ 12 "); //12
- parseInt()函数
1)如果转换的值是null,undefined,boolean,均转换为NaN
2)如果转换的值是Number Number(整数)
3)如果转换的值是string Number(整数)
- parseFloat()函数
1)如果转换的值是null,undefined,boolean,均转换为NaN
2)如果转换的值是Number Number(浮点型)
3)如果转换的值是string Number(浮点型)
- +,将不是number的数据转换为number类型
4.注意
1)加法 +(m + n)
当m,n不为String,Object类型的时候,先将m,n转换为Number类型,然后再进行计算
当m,n有一个为String,无论另一个操作数为何(但不为对象)都要转换为String,然后再进行拼接
当m,n 有一个为对象,如果该对象既重写toString,又重写了valueOf方法,先调用valueOf方法获取返回值,将该返回值和另外一个操作数进行运算。如果该对象没有重写valueOf方法,将调用toString方法获取返回值,将该返回值和另外一个操作数进行运算。
2)默认情况下,ECMAScript会将小数点后带有6个零以上的浮点数转化为科学计数法。
3)在进行算术计算时,所有以八进制十六进制表示的数值都会被转换成十进制数值。
4)保存浮点数需要的内存是整数的两倍,因此ECMAScript会不失时机将浮点转换为整数
5)避免测试某个特定的浮点数值,是使用IEEE754数值的浮点计算的通病
例如:
0.1+0.2 //结果不是0.3,而是0.30000000000000004