Javascript 为什么要在try-and-catch短语中实现相同的功能?

Javascript 为什么要在try-and-catch短语中实现相同的功能?,javascript,try-catch,Javascript,Try Catch,我试图理解在继承的JavaScript代码中发现的舍入函数: 使用COMMASX的函数百分比?{ 试一试{ 返回x*100.toLocaleStringen-UK,{ maximumFractionDigits:1,minimumFractionDigits:1}+'%'; }抓住e{ 返回x*100.toFixed2+'%'; } } 我知道现在JS中的舍入是通过.ToLocalString来完成的。。。而不是。太固定了 为什么一个人要在try和catch短语中实现相同的东西 参考文献 双重实

我试图理解在继承的JavaScript代码中发现的舍入函数:

使用COMMASX的函数百分比?{ 试一试{ 返回x*100.toLocaleStringen-UK,{ maximumFractionDigits:1,minimumFractionDigits:1}+'%'; }抓住e{ 返回x*100.toFixed2+'%'; } } 我知道现在JS中的舍入是通过.ToLocalString来完成的。。。而不是。太固定了

为什么一个人要在try和catch短语中实现相同的东西

参考文献


双重实现似乎毫无用处:toLocaleString与旧浏览器具有很高的兼容性,请参阅

不同的问题:你不应该使用x?因为如果x是可选的,那么空*100就会出现问题。最好测试x是否为数字,并执行以下操作:

使用COMMASX的函数百分比{ ifisNaNx返回; 返回x*100.toLocaleStringen-UK,{ maximumFractionDigits:1,minimumFractionDigits:1}+'%'; } 或者类似的


注意:如果您担心.toLocalString不可用,可以使用if 0.toLocalString显式检查它的存在

这可能是一种处理.toLocaleString不可用的方法,就像在旧浏览器中一样。我不认为这是最好的测试方法。英国,小数是。,。此外,catch使用的小数点后2位与区域设置使用的小数点后1位相同。。无论如何,这似乎是错误的。明确检查函数:if 0.toLocaleString或类似的东西。亲爱的底层/底层投票者,我知道我的问题并不太高级,但这是你像你一样投票的原因吗?@B-rian for Javascript x?是一个错误,但可能OP正在使用Typescript,并且没有放置Typescript标记。不管怎么说,它是可选的似乎有些奇怪,而且如果使用Typescript,放x:number似乎更合适。。或者OP使用的是Flow,这很相似。。