一.Number()
- 参数为Boolean值,返回的结果是1(true),0(false)
Number(true); //1 Number(false); //0
- 参数为String
①.字符串中含有字母
②.字符串中只有数值,数字前面有0,则自动省略,可以为小数(包含正负号)Number('abc');//NaN Number('abc1234');//NaN
③.字符串中包含有效的十六进制格式,则会被转成对应的十进制Number('12');//12 Number('-123');//-123 Number('12.12'); // 12.12
④.字符串为空,则会被转化为0Number("0xf")//15
Number('')//0
- 参数是null,返回的结果是0
Number(null)//0
- 参数是undefined,返回的结果是NaN
Number(undefined);//NaN
- 参数是数值,返回的结果还是数值
Number(12)//12
二.parseInt()
- 字符串为空,则返回结果为NaN
parseInt('');//NaN
- 字符串的第一个有效字符是数字或者是正负符号,直到解析到非数字的字符为止
parseInt('-123asv');//-123 parseInt('123shx');//123
- 字符串的第一个字符不是数字或者正负号,则返回结果为NaN
parseInt('asv');//NaN parseInt('sadas12312');//NaN
- 字符串是数字,则返回整数,第一个字符是0的话,则会被省略
parseInt('12.12');//12 parseInt('-12.12');//-12
- 字符串以‘0x’开头且后面为数字字符,则会被转化为十六进制
parseInt('12.12');//12 parseInt('-12.12');//-12
- 以‘0’开头且后面为数字字符,在ECMAScript3中当做八进制解析,但是在ECMAScript5中只当作十进制解析。
parseInt('070');//56 ---ECMAScript3 parseInt('070');//70 ---ECMAScript5
- 第二参数,parseInt(字符串,基数)
parseInt('10',2);//2 ---二进制解析 parseInt('10',8);//8 ---八进制解析 parseInt('10',10);//10 ---十进制解析 parseInt('10',16);//16 ---十六进制解析
三.parseFloat()
- 字符串为空,则返回结果为NaN
parseFloat('');//NaN
- 字符串的第一个有效字符是数字或者是正负符号,直到解析到非数字的字符为止
parseFloat('-123asv');//-123 parseFloat('123shx');//123
- 字符串的第一个字符不是数字或者正负号,则返回结果为NaN
parseFloat('asv');//NaN parseFloat('sadas12312');//NaN
- 字符串是数字,则返回整数,第一个字符是0的话,则会被省略
parseFloat('12.12');//12 parseFloat('-12.12');//-12 parseFloat('.123');//0.123 parseFloat('12.123.121312');//12.123
parseFloat()不能区分八进制和十六进制,没有基数的用法,也就是没有第二参数
parseFloat(‘070’);//70
parseFloat(‘0xf’);//0