【发布时间】:2016-01-28 10:49:13
【问题描述】:
淘汰扩展器页面的Example 1 描述了一种四舍五入用户输入并确保它只是数字的方法。
效果很好,但是通过查看源代码,他们做了一件我不明白的奇怪事情,那就是在第 8 行,他们这样做了:
parseFloat(+newValue)
newValue 是一个字符串。
当我最初问这个问题时,我不知道 + 做了什么 - 一些进一步的 poking 和 link to a different MDN page 从我得到的最初答案之一表明它是一个一元运算符,相当于 number(str) 和+str 和 parseFloat(str) 之间存在一些差异(以字母字符结尾的字符串的处理和十六进制的解释似乎是头条新闻)。
我仍然不明白为什么在这种情况下需要将 + 包装在 parseFloat 中,尽管我开始认为这可能是一个错字...
【问题讨论】:
-
我刚刚发现这个stackoverflow.com/questions/12227594/… 问题很相似——回答者对 parseFloat 和 + 之间差异的解释非常好。但它仍然没有解释为什么要在之后解析数字......
-
两者都用是没有意义的。对号码调用
parseFloat是一种反模式。 -
你能把你的问题限制在#2吗?
-
谢谢Bergi - 我认为我也没有任何意义......
-
有问题的行似乎等同于
+newValue || 0
标签: javascript