将字符串转换为数字- parseInt() vs Number();

12 浏览
0 Comments

将字符串转换为数字- parseInt() vs Number();

在这种情况下,当我想将字符串转换为数字时,parseInt()可以工作,但Number()不行。

parseInt(this.element.style.left) << 它可以工作
Number(this.element.style.left) << 它不能,结果为NaN

0
0 Comments

在JavaScript中,将字符串转换为数字有两种常用的方法:parseInt()和Number()。然而,它们在处理包含非数字字符的字符串时会产生不同的结果。

parseInt()函数在遇到非数字字符时会忽略该字符及其后面的所有字符,并返回解析到该字符为止的整数值。它会将数字截断为整数值,并且允许字符串中存在前导和尾随空格。

与之相反,Number()函数尝试将整个参数解析为数字。例如,当使用类似于"12px"的字符串作为参数时,parseInt('12px')可以正常工作,因为parseInt()可以忽略掉"px"这两个字符。但是,Number('12px')不能正常工作,因为'12px'字符串中的所有字符都无法被解析为数字。

parseInt()函数会跳过无效字符(并在此处停止解析),并返回已解析的部分。而Number()函数在任何位置有任何无效字符时都无法解析成功。

因此,如果我们需要将包含非数字字符的字符串转换为数字,我们应该使用parseInt()函数。如果我们需要将整个字符串作为数字进行解析,我们应该使用Number()函数。

以下是一个示例,说明了parseInt()和Number()的区别:

var str = '12px';
console.log(parseInt(str));  // 输出:12
console.log(Number(str));    // 输出:NaN

在上面的示例中,parseInt()函数成功地将字符串'12px'解析为整数12,而Number()函数返回NaN,表示无法解析为数字。

根据字符串中是否包含非数字字符以及我们需要解析的部分,我们可以选择使用parseInt()或Number()函数来将字符串转换为数字。

0