parseInt将字符串(String)类型转为整数类型。
Number() 函数把对象(Object)的值转换为数字。
语法不同:
parseInt(string, [radix])
string:必选参数,要被转换的字符串
radix:可选,数字的基数。取值范围在2~36。
如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
<pre name="code" class="javascript"> alert("parseInt1返回 " + parseInt("1", 1)); //返回NaN
alert("parseInt0x123 " + parseInt("0x123")); //291
alert("parseInt000123 " + parseInt("000123")); //123
当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。 如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。
Number(object)
Number返回的是数字,其参数是对象。
如果对象的值无法转换为数字,那么 Number() 函数会返回 NaN。
var test = new Date()
var testStr = new String("123");
var testStr1 = new String("5,000");
alert("Number(test) " + Number(test)); //返回1437631091369
alert("Number(testStr) " + Number(testStr)); //返回123
alert("Number(testStr1) " + Number(testStr1)); //返回NaN
在 var testStr1 = new String("5,000") 中,字符串中含有千位符,因此造成无法转换。虽然是很小的细节,但也应当谨慎。含有千位符的字符串,不能直接转换,要先去掉千位符,再进行转换,也是由此引出这篇博客。