banner
leoking

leoking

前端开发者
tg_channel

转换字符串时,Number() 和 parseInt() 的区别?

Number()parseInt() 是 JavaScript 中用于将字符串转换为数字的两个不同函数,它们在处理字符串时有一些不同之处。

Number()#

  • Number() 函数将整个字符串转换为数字。
  • 如果字符串包含非数字字符(除了开头的空格和正负号),则返回 NaN
  • 如果字符串可以被完整地解析为一个数字,则返回该数字。

parseInt()#

  • parseInt() 函数解析字符串的整数部分,直到遇到第一个非数字字符为止。
  • 可以指定一个可选的基数(即进制)来解析字符串。
  • 如果字符串以非数字字符开头,parseInt() 返回 NaN

示例解释#

示例 1#

let a = "1hola1";
console.log(Number(a)); // 输出: NaN
console.log(parseInt(a)); // 输出: 1

解释:

  • Number("1hola1") 返回 NaN,因为整个字符串 "1hola1" 无法转换为一个有效的数字。
  • parseInt("1hola1") 返回 1,因为它从字符串开头解析,直到遇到非数字字符 h

示例 2#

let a = "1";
console.log(Number(a)); // 输出: 1
console.log(parseInt(a)); // 输出: 1

解释:

  • Number("1")parseInt("1") 都返回 1,因为字符串 "1" 是一个有效的数字,没有非数字字符干扰解析。

总结#

  • 使用 Number() 可以将整个字符串转换为一个数字,如果字符串包含任何非数字字符,则返回 NaN
  • 使用 parseInt() 可以从字符串的开头解析出整数部分,直到遇到非数字字符为止。

其他示例#

console.log(Number("123.45")); // 输出: 123.45
console.log(parseInt("123.45")); // 输出: 123

console.log(Number("   123   ")); // 输出: 123
console.log(parseInt("   123   ")); // 输出: 123

console.log(Number("123abc")); // 输出: NaN
console.log(parseInt("123abc")); // 输出: 123

console.log(Number("abc123")); // 输出: NaN
console.log(parseInt("abc123")); // 输出: NaN

这些示例展示了 Number()parseInt() 在处理不同字符串时的行为差异。

又学习到了新的知识。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。