parseFloat会抛出错误吗?

Bar*_*t S 4 javascript parsefloat

在我正在处理的代码库中,我遇到了这样的代码:

try {
    price = parseFloat(price);
} catch (err) {
    console.log(err);
}
Run Code Online (Sandbox Code Playgroud)

我知道在大多数情况下,price无法将其变成数字,它只会获得相应的价值NaN.我的问题是:是否会出现错误,使try-catch-construction成为必要?

Ber*_*rgi 9

是否存在会引发错误的情况,使得try-catch-construction必要?

是.除了引用错误(因为price没有声明)或者parseFloat被不是函数之类的东西覆盖,内置parseFloat函数也会抛出异常.

但是,传入字符串时它确实不会抛出错误.它只会在尝试将参数转换为字符串失败时抛出异常.其中的例子包括:

  • 传递一个符号
  • 传递对象没有[Symbol.toPrimitive],.valueOf.toString方法
  • 传递其中一个方法抛出的对象
  • 传递一个对象,其中没有这些方法返回一个原语