Javascript 方法链:正确的方法链 toFixed() 和 parseFloat() 返回一个数字,而不是一个字符串?

Nub*_*lar 0 javascript parsefloat tofixed

这里最重要的是我不能设置一个变量,需要在运行中:

处理纬度。让我们称之为lat。假设在这种情况下 lat 是 123.4567

lat.toFixed(2).parseFloat();

TypeError: Object 123.35 has no method 'parseFloat'
Run Code Online (Sandbox Code Playgroud)

最好的方法来解决这个问题?

Xot*_*750 5

toFixed是一个方法Number并返回一个字符串。window.parseFloat是一个全局函数而不是 的方法String,但如果你真的必须,那么你可以把它变成一个String方法,否则就将它用作一个函数。在这种情况下,您甚至可以使用一元加运算符。

(有很多关于增强原生对象的讨论,我不打算深入,你可以做一些研究并下定决心。)

Javascript

if (!String.prototype.parseFloat) {
    String.prototype.parseFloat = function () {
        return parseFloat(this);
    }
}

var lat = 123.456789;

console.log(parseFloat(lat.toFixed(2)));
console.log(lat.toFixed(2).parseFloat());
console.log(+lat.toFixed(2));
Run Code Online (Sandbox Code Playgroud)

输出

123.46
123.46 
123.46 
Run Code Online (Sandbox Code Playgroud)

jsfiddle 上