js基础 - 类型转换
想了解js中的类型转换,先要了解js中几个类型转换的方法:
- Number()
Number方法是把其他类型转换为数字型
-
布尔值,true转换为1,false转换为0
-
数值直接返回
-
null转换为0
-
undefined转换为NaN
-
字符串
-
如果包含数值字符,并且全部是数字字符,包括前面带加减号,都会转换为十进制数值
如果有除数值,加减号字符以外的字符,都会转换为NaN
-
如果包含浮点数值,在满足上一条以后,有且只有一个小数点,都会转成相应的浮点数值
如果有多个小数点,都会转成NaN
-
如果包含十六进制字符,会转换为对应的十进制数值
-
如果包含空字符串,会转换为0
-
其他字符串情况都转换为NaN
-
-
对象,调用valueOf()方法,在按照上面的规则转换,如果结果还是NaN,再调用toString()方法,再按照上面的规则转换
Number("hi,kangkang"); //NaN
Number(""); //0
Number("00011"); //11
Number(true); //1
- parseInt()
parseInt()方法也是将其他类型转换为数值,与Number()差不多,主要有几点区别
- 字符串最前面的空格会被忽略,从第一个非空格字符开始解析
- 如果第一个字符不是数值,加减号字符,直接返回NaN
- 空字符串会转换为NaN
- 如果第一个字符是数值,加减号字符,则继续依次检测字符,碰到第一个非数值字符结束
parseInt("1234onetwo"); //1234
parseInt(""); //NaN
parseInt("22.5"); //22
parseInt()方法有第二参数,用于指定进制数,意思是按照指定的进制数,将字符串转换为十进制数
parseInt("10",2); //2
parseInt("10",8); //8
parseInt("10",10); //10
parseInt