📅  最后修改于: 2023-12-03 15:39:16.332000             🧑  作者: Mango
在开发中,我们经常需要将字符串转换为整数。在 JavaScript 中,我们可以使用内置函数 parseInt()
或 Number()
来完成这个任务。但是,在使用这些函数之前,我们需要清楚它们的区别和使用注意事项。
parseInt()
函数将字符串解析为整数,并返回整数结果。它有两个参数:要转换的字符串和一个表示数字系统的基数。
下面是一个示例:
const num = parseInt("123", 10);
console.log(num); // 123
在这个例子中,我们将字符串 "123" 转换为基数为 10 的整数。
如果省略基数,则 parseInt()
将根据字符串的前缀来判断数字系统的基数。例如,如果字符串以 “0x” 开头,则 parseInt()
将使用基数 16。这可能导致一些不必要的问题,因此我们建议始终明确指定基数。
const num = parseInt("0xFF");
console.log(num); // 255
在这个例子中,我们使用省略基数的方式将字符串 "0xFF" 转换为基数为 16 的整数。
需要注意的是,parseInt()
在解析数字时会忽略前导空格和字符串末尾的非数字字符。
const num = parseInt(" 123");
console.log(num); // 123
const num2 = parseInt("123abc");
console.log(num2); // 123
在这两个例子中, parseInt()
分别忽略了前导空格和字符串末尾的 “abc”。
另外,parseInt()
还有一个特殊的行为,就是将负数标识为负符号“-”后,解析后面的数字。
const num = parseInt("-123");
console.log(num); // -123
这个例子中,parseInt()
解析了负数标识符 “-” 后的整数 “123”。
与 parseInt()
不同,Number()
函数可以将除了纯数字字符串之外的任何值转换为数字。如果转换失败,则返回 NaN
(非数字)。
下面是一个示例:
const num = Number("123");
console.log(num); // 123
const num2 = Number("abc");
console.log(num2); // NaN
在这个例子中,我们使用 Number()
将字符串 "123" 转换为数字,将字符串 "abc" 转换为 NaN
。
需要注意的是,Number()
在解析数字时同样会忽略前导空格和字符串末尾的非数字字符。
const num = Number(" 123 ");
console.log(num); // 123
在这个例子中,Number()
忽略了字符串中的前导空格和末尾的空格。
使用 parseInt()
或 Number()
可以将字符串转换为整数或数字。在实际开发中,我们需要根据具体的需求选择合适的函数,并且要注意这些函数的使用注意事项,例如基数的指定,前导空格和末尾非数字字符的忽略等。