我编写了一个函数,该函数的行为取决于其参数的数字类型。整数或浮点数。
使用此问题中的一些代码如何检查数字是浮点数还是整数?很容易检测是否浮动,但后来我偶然发现如果您使用该数字调用函数,javascript 会无缘无故地强制转换1.0
为这种情况。1
例子:
function dump(a, b) {
console.log(a, typeof b, b);
}
dump('1', 1);
dump('1.0', 1.0);
dump('1.1', 1.1);
输出 chrome、firefox、ie、opera 和 safari 都给出了相同的结果:
1 number 1
1.0 number 1 "wrong"
1.1 number 1.1
我知道 javascript 只知道类型number
,但强制转换似乎太过分了。我想出的唯一解决方案是使用字符串值调用函数'1.0'
,例如检测点并使用parseFloat
或parseInt
。
对此有什么建议吗?