我想解析包含经度和纬度的用户输入.我想要做的是将字符串强制转换为数字,保留其符号和小数位.但我想要做的是在用户输入无效时显示一条消息.我应该遵循哪一个
parseFloat(x)
Run Code Online (Sandbox Code Playgroud)
第二
new Number(x)
Run Code Online (Sandbox Code Playgroud)
第三
~~x
Run Code Online (Sandbox Code Playgroud)
第四
+x
Run Code Online (Sandbox Code Playgroud)
Poi*_*nty 18
我会使用Number(x),如果我必须在这两者之间做出选择,因为它不会允许尾随垃圾.(嗯,它"允许"它,但结果是NaN.)
也就是说,Number("123.45balloon")是NaN,但是parseFloat("123.45balloon")是123.45(如数字).
正如克林先生指出的那样,哪些是"更好"取决于你.
编辑 -啊,你已经加回+x和~~x.正如我在评论中所写,+x相当于使用Number()构造函数,但我认为由于+运算符的语法灵活性,它有点风险.也就是说,剪切和粘贴很容易引入错误.该~~x形式是好的,如果你知道你想要一个整数(32位整数)反正.对于纬度/长度,这可能不是你想要的.
第一个更好.它是明确的,而且是正确的.你说你想要解析浮点数.~~x会给你一个整数.