(3)转换为数值类型
1)Number(mix)函数:将任意类型转换为数值型
undefined->NaN
null->0
布尔类型:true->1,false->0
字符串类型
1.如果字符是空字符“”->0。
2.只包含数字(包含前面带正负号的情况)->十进制的数值。如“1”->1,“1.1”->1.1。
3.忽略字符串前面的空格,直到找到第一个非空字符
4.如果字符串中包含字符->NaN。如“asd”->NaN
5.如果字符中包含有效的十六进制->相同大小的十进制整数值。如“0x12”。
如:
Number(undefined) //返回NaN
Number(null) //返回0
Number(true) //返回1
Number(“”) //返回0
Number(“12”) //返回12
Number(“12ab”) //返回NaN
Number(“0x1f”) //返回31
注意:如果是八进制的数值呢?如“012”
Number(“012”) //返回12
原因在于在ECMAScript 3 JavaScript引擎中会把“012”做为一个八进制数解析,但是在ECMAScript 5之后JavaScript引擎中已经不再具备解析八进制的能力,因此前面的0会被认为无效,被认为是为“0”,从而转换的结果为12
2)parseInt(string,radix):将字符串类型转换为整型。
1.忽略字符串前面的空格,直到找到第一个非空字符
2.如果第一个字符是数字。则继续解析,直到遇到第一个非数字字符串为止。返回数字的整数部分
3.如果第一个字符是数字,可以按照指定radix参数值来进行解析
4.如果第一个字符不是数字,则返回NaN
如:
parseInt(“12ab”)//返回12
parseInt(“12ab” ,8)//返回10
parseInt(“a12b”)//返回NaN
3)parseFloat(string):将字符串类型转换为浮点型。
1.忽略字符串前面的空格,直到找到第一个非空字符
2.如果第一个字符是数字。则继续解析,直到遇到第一个非数字字符串为止。返回解析的数字
3.如果字符串包含一个可解析为整数的数,则返回整数值而不是浮点数值。
4.如果第一个字符不是数字,则返回NaN
如:
parseFloat(“12.23ab”)//返回12.23
parseFloat(“12ab”)//返回12
转换为数值型三个方法的区别
1.转换类型
Number函数可以将任意类型转换为数值型
parseInt函数和parseFloat函数只能将字符串转换为数值型
2.只包含数字的字符串
Number函数:如果数字是整数则转换为整数,如果数字是浮点数则转换为浮点数数。
parseInt函数:转换为整数。
parseFloat函数:如果是数字是浮点数则转换为浮点数。如果是整数则转换为整数
3.包含数字和字符的字符串
Number函数:将整个字符串都转换为NaN
parseInt函数,parseFloat函数:按照转换规则进行转换。
4.按照进制数来转换
Number函数,parseFloat函数:不能按照进制数转换
parseInt函数:可以按照进制数转换