Number()可以用于任何数据类型。而parseInt(),parseFloat()专门用于把字符串转换为数值
1.Number()的转换规则
1.0 Boolean ,true 和 false 将分别被转为1 和 0
2.0数字值,则只是简单的传入和返回
3.0 null值,返回0
4.0 undefined,返回 NaN
5.0 如果是字符串:
1.如果字符串中只包含数字(包括前面带正负号的情况),则转换为十进制数
2.如果是空字符串,则转换为0
3.如果包含有效的浮点格式,则转换为浮点数值
4.如果包含非数字内容,则转换为NaN
(一元加操作符与Number()函数相同)
2.parseInt() -- 可以为函数提供第二个参数:转换时使用的基数
1.0 parseInt()在转换字符串时,会更多看其是否符合数值模式。会忽略字符串前面的空格,知道找到第一个非空格字符。
2.0如果第一个字符不是数字字符或者正负号,则返回NaN;(用parseInt()转换空字符串时会返回NaN)
3.0 如果遇到的第一个字符是数字字符,parseInt()会继续解析后面的字符,直到解析完所有字符或遇到了非数字字符;
eg: ver num1 = parseInt("10",2); //2 按二进制进行解析
3.parseFloat()
也是从第一个字符开始解析,一直到字符串末尾或者遇见一个无效的浮点数字字符为止
字符串中第一个小数点是有效地,而第二个小数点就是无效的了;
十六进制字符串会始终被转换成0;
只解析十进制值,所以不指定第二个参数
如果字符串包含的是一个可解析为整数的数(没有小数点或者小数点后面都是零),则返回整数值;