我想解析包含经度和纬度的用户输入。我想要做的是将字符串强制转换为数字,保留其符号和小数位。但我想做的是在用户输入无效时显示一条消息。我该跟哪个
parseFloat(x)
第二个
new Number(x)
第三个
~~x
第四个
+x
最佳答案
如果必须在这两者之间进行选择,我会使用 Number(x)
,因为它不允许尾随垃圾。 (好吧,它“允许”它,但结果是 NaN
。)
也就是说,Number("123.45balloon")
是 NaN
,但是 parseFloat("123.45balloon")
是 123.45
(作为数字)。
正如 Kling 先生所指出的,哪一个“更好”取决于您。
编辑 — 啊,您已经添加回 +x
和 ~~x
。正如我在评论中所写,+x
等同于使用 Number()
构造函数,但我认为这有点冒险,因为 的语法灵 active +
运算符。也就是说,剪切和粘贴很容易引入错误。如果您知道自己想要一个整数(32 位整数),则 ~~x
形式很好。然而,对于纬度/经度,这可能不是您想要的。
关于javascript - 在javascript中将字符串转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11613705/