在javascript中解析Float()之前,我应该先调用String()吗

Should I toString() before I parseFloat() in javascript

本文关键字:我应该 调用 String 之前 Float javascript      更新时间:2024-05-29

我的项目中有一个值需要解析Float()。诀窍是,该值可以是null、int或字符串,但它始终是一个数字。我的问题是,在parseFloat()之前向String()传递我的值是不是最好的做法。

.例如:

var num = null;
num = parseFloat(num.toString())

这是正确的吗?还是我应该这样做?:

var num = null;
num = parseFloat(num)

根据ECMAScript 5.1规范,parseFloat()在处理内部函数ToString()之前,会对其参数隐式调用该函数。该函数可以正确处理undefinednull等值。

不,您不必自己调用toString(),转换是由parseFloat()隐含的,它涵盖了更广泛的值范围(toString()不适用于某些类型的变量,如null)。

Null没有toString()方法。

var num = null;
//....
// operate on num
//....
if (!num) {
  num = parseFloat(0);
} else {
  num = parseFloat(num);
}

如果num.toString()生成的字符串中的第一个非空格字符不是数字文字的一部分,则parseFloat()将返回NaN。如果您不希望NaN值出现在您的数据中,则必须对此进行检查。

Javascript会自动将任何数字转换为字符串,因此不需要toString()。您应该知道,如果num为null,则返回NaN字符串。