- 在转换空字符串或null时,Number()会返回0;parseInt()会返回NAN
alert("Number: " + Number(null)); //0 alert("parseInt: " + parseInt(null));//NaN alert("Number: " + Number(null)); //0 alert("parseInt: " + parseInt(null));//NaN
- 如果前几个字符是数字字符,后面跟着几个非数字字符, parseInt()只会返回前几个数字字符,后面的非数字字符会被忽略;而Number()会返回NAN
alert("parseInt: " + parseInt('123hello'));//123 alert("Number: " + Number('123hello'));//NaN
- 注意:如果是浮点数如:"1.23"或1.23,Number()会返回1.23,而parseInt()会返回1,他把小数点当做的非数字字符。
alert("parseInt: " + parseInt(1.23)); //1 alert("Number: " + Number(1.23));//1.23 alert("parseInt: " + parseInt("1.23"));//1 alert("Number: " + Number("1.23"));//1.23
- 如果字符串中的第一个字符是数字字符,parseInt()也能识别出各种正数格式(即十进制,二进制,八进制,十六进制);对于二进制,八进制Number()则会忽略字符串的前导0,输出后面的数字,对于十六进制,Number()会转换为十进制。
alert("parseInt: " + parseInt('0101')); //65 alert("Number: " + Number('0101'));//101 alert("parseInt: " + parseInt('070')); //56 alert("Number: " + Number('070')); //70 alert("parseInt: " + parseInt('0xf0')); //240 alert("Number: " + Number('0xf0'));//240
- parseInt()可以接收第二个参数,用来指名转换时使用的基数,这时可以省略进制数的前导符,如八进制的'0',十六进制的'0x'
alert("Number: " + parseInt('101', 2)); //5 alert("Number: " + parseInt('70', 8)); //56 alert("parseInt: " + parseInt('af', 16));//175