1、Number() 可以把任何类型的数据转换为数值或NaN(not a number),parseInt()和parseFloat()只能把字符串或数值转换为数值;
2、Number()和parseFloat()会有效解析浮点数(如"324.11abc"转为324.11),而parseInt()只提取数字字符串中的整数部分(如"324.11abc"转为324);
3、Number()把空字符串转换为0,而parseInt()和parseFloat()则是转换为NaN;
4、Number()和parseInt()会把有效的十六进制格式字符串(如"a2d")转换为十进制数,而parseFloat()会转为0;
5、Number()和parseFloat()都会把前面带0的数字字符串(如"0324")转换为十进制的整数或浮点数,而parseInt则会转成八进制数;
6、parseFloat()如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN;开头和结尾的空格是允许的。
6、parseInt()含有第二个参数,用来规定数字转换的进制数(从2到36),如parseInt("2",10)(第一个参数是数值,第二个参数是进制)(按10进制来解析2)。而Number()和parseFloat()则没有这个功能。
parseInt("10"); //返回 10
parseInt("19",10); //返回 19 (10+9)
parseInt("11",2); //返回 3 (2+1)
parseInt("17",8); //返回 15 (8+7)
parseInt("1f",16); //返回 31 (16+15)
parseInt("010"); //未定:返回 10 或 8
关于Numbe()的强制转换我在 js入门-one 中写到了(如下图)