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()
在处理不同字符串时的行为差异。
又学习到了新的知识。