1.Number()用于将所有数据类型转换为数值型。
alert(Number(true)); //返回1.False则为0
alert(Number("")); //返回0
alert(Number(null)); //返回0
alert(Number(undefined)); //返回NaN 【(NAN表示 Not a Number)。JS提供了IsNaN()函数,alert(IsNaN('字符串'));则返回为:True。】
alert(Number('070.90')); //返回70.9自动去掉前导“0”和后导“0”
alert(Number("Lee123")); //返回NaN
2.由于Number()再转换字符串时比较不太合理,在处理整数时我们更常用的时parseInt().
parseInt()只能转换字符串。
alert(parseInt('456LEE')); //返回456
alert(parseInt('LEE456')); //NaN 第一个不是数值,停止转换
alert(parseInt('56.2')); //返回56,遇到小数点字符串所以停止转换
alert(parseInt('12LEE56.2')); //返回12,遇到字符串后后面的停止转换
alert(parseInt('')); //返回NaN
alert(parseInt('0xA')); //返回10,16进制
alert(parseInt('070')); //返回56,8进制
alert(parseInt('0xALee')); //返回10,自动过滤掉了“Lee”
/*ECMAScript为parseInt提供了第二个参数,用于解决各种进制的转换*/
alert(parseInt('0xAF')); //返回175
alert(parseInt('0xAF',16)); //返回175
alert(parseInt('AF',16)); //返回175
Number()加上也可以为加上标识符的其他进制进行转换,但是不能像parseInt()一样写入第二个参数。
3.parseFloat()适用于浮点数值转换,和parseInt()一样,从第一位解析到非浮点数的位置。
alert(parseFloat('123Lee')); //返回123
alert(parseFloat('0xA')); //返回0,parseFloat()不支持进制转换
alert(parseFloat('12.3.4')); //返回12.3,只认一个小数点
alert(parseFloat('012')); //返回12,自动去掉前导0