Number()、parseInt()、parseFloat()
共性:
1.均可解析不同进制的数字,但对于字符串有所差别。
2.无法解析时返回NaN。
如:
Number(010); //8
parseInt(010); //8
parseFloat(010); //8
Number("010"); //10
parseInt("010"); //8或10
parseFloat("010"); //10
Number("0x10"); //10
parseInt("0x10"); //16
parseFloat("0x10"); //0
/*Number()*/
1.转化为数字0的情形:false、"0"、null、""四种;
2.Number(undefined)返回NaN;
3.Number(true)返回1。
/*parseInt()*/
1.如果解析的第一个非空格字符不是数字或负号则返回NaN;
2.parseInt("")返回NaN;
3.parseInt()可以识别各种整数形式(八进制、十六进制);
4.在ES5Javascript引擎中parseInt()不具有解析八进制的能力,因此前导0无效,即parseInt("010")返回10;
5.提供第二个参数,用来指定使用几进制进行解析。
/*parseFloat()*/
1.解析到遇到一个无效的浮点数字字符为止;
2.忽略前导0,八进制的0忽略,十六进制格式的字符串则始终转换为0,即parseFloat("0x10")返回0;
3.在解析数字或可以转化为数字的字符串中会忽略小数点后尾部的0。
如:
parseFloat("22.500")//22.5