// 当字符串是由数字组成的时候 他们转换的数字一样的没有差别
let numStr = '123'
console.log(parseInt(numStr)) //123
console.log(Number(numStr)) //123
// 当字符串是由字母组成的时候
let numStr = 'abc'
console.log(parseInt(numStr)) //NaN
console.log(Number(numStr)) //NaN
// 当字符串是由数字和字母组成的时候
let numStr = '123a'
console.log(parseInt(numStr)) //123
console.log(Number(numStr)) //NaN
// 当字符串是由0和数字
let numStr = '0123'
console.log(parseInt(numStr)) //123
console.log(Number(numStr)) //123
// **当字符串包含小数点**
let numStr = '123.456'
console.log(parseInt(numStr)) //123
console.log(Number(numStr)) //123.456
// **当字符串为null时**
let numStr = null
console.log(parseInt(numStr)) //NaN
console.log(Number(numStr)) //0
// **当字符串为''(空)时**
let numStr = ''
console.log(parseInt(numStr)) //NaN
console.log(Number(numStr)) //0
```html
1.入参不同;
parseInt(val, radix); // val为string类型(非字符串自动调用toString方法转化),radix(2~32)进制;
Number(val); // val为number类型(非number类型自动转化成number,不能转的返回NaN);
2.返回结果不同;
parseInt() 返回整数或NaN;
Number() 返回整数或小数或NaN;
eg:
Number(2.5); // 2.5
parseInt(2.5); // 2
Number('true'); // 1
parseInt('true'); // NaN
3.函数类型不同;
parseInt()是JavaScript的全局函数;
Number()是基本包装类型Number的构造函数,可以和new操作符一起使用创建变量,而parseInt()不行;
var num = new Number(5);
Most helpful comment