1: parseInt( numString [, radix ] ) 【测试浏览器:chromium && firefox】
①parseInt()
函数用于将字符串转换为(十进制)整数并返回。该函数可以将字符串视作指定的进制形式表示。
②第一个参数:可以为字符串或者数字。 【机制:是数字时,先转换为字符串】
当为数字时,017会被视为8进制,返回15,但是当为字符串时,‘017’被视为十进制,返回17。
0x开头的无论是字符串还是数字都被视为16进制。
第二个参数为进制基数。 有效值为(包含)[2-36]。其他值都被视为默认值10.
③过程:parseInt()方法首先查看位置0处的 字符,判断它是否是个有效数字;如果不是,该方法将返回NaN,
不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置1处的字符,进行同样的 测试。
这一过程将持续到发现非有效数字的字符为止,此时parseInt()将把该字符之前的字符串转换成数字。
2: parseFloat( numString ) 【过程同parseInt()一样】
parseFloat()方法 字符串必须以十进制形式表示浮点数,而不能用八进制形式或十六进制形式。
该方法会忽略前导0,所以八进制数0908将被解析为908。对于十六进制数0xA,该方法将返回NaN,因为在浮点数中,x不是有效字符。
此外,parseFloat()也没有基模式[没有第二个参数]。
3: Number()
Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。
parseInt()和parseFloat()方法只转换第一个无效字符之前的字符串。如“3.4.5”被转换成“3.4”,用Number()进行强制类型转换将返回NAN,
如果字符串值能被完整地转换,Number()将判断是调用parseInt()还是parseFloat()。