📜  parseInt() 和 Number() 有什么区别?(1)

📅  最后修改于: 2023-12-03 15:18:16.158000             🧑  作者: Mango

parseInt() 和 Number() 有什么区别?

在 JavaScript 中,parseInt()Number() 都可以将字符串转换为数字,但它们之间有一些不同点。

parseInt()

parseInt() 函数将字符串解析成整数。它的第一个参数是要被解析的字符串,第二个参数是表示使用的进制(默认为十进制)。

let number = parseInt('10');
console.log(number); // 10

let hexNumber = parseInt('0x10');
console.log(hexNumber); // 16

let binaryNumber = parseInt('1010', 2);
console.log(binaryNumber); // 10

let NaNValue = parseInt('hello');
console.log(NaNValue); // NaN

如果传递的字符串不能转换成整数,则 parseInt() 返回 NaN

Number()

Number() 函数将传入的参数转换成数字。如果参数是字符串,它将尝试将其解析成数字,如果参数是其他类型的值,则将其转换为数字。

let number = Number('10');
console.log(number); // 10

let NaNValue = Number('hello');
console.log(NaNValue); // NaN

let booleanValue = Number(true);
console.log(booleanValue); // 1

let nullValue = Number(null);
console.log(nullValue); // 0

let undefinedValue = Number(undefined);
console.log(undefinedValue); // NaN

如果字符串不能转换成数字,则 Number() 函数返回 NaN。如果传递的参数是 nullundefined,则返回的值为 0NaN,具体取决于是什么类型的参数。

区别

parseInt()Number() 函数在以下方面有所不同:

  • parseInt() 只能将字符串解析成整数,而 Number() 可以将其他类型的值转换成数字。
  • parseInt() 可以使用第二个参数指定要使用的进制,而 Number() 只支持十进制。
  • parseInt() 从第一个字符开始解析字符串,如果遇到非数字字符,它将停止解析,而 Number() 函数会将整个字符串解析成数字。
  • 如果字符串不能转换成数字,parseInt() 返回 NaN,而 Number() 返回的值可能是 NaN,也可能是 0

在 JavaScript 中,Number() 被广泛使用,因为它不仅支持将字符串转换成数字,还支持将其他类型的值转换成数字。