+运算符与parseFloat
+ operator vs parseFloat
本文关键字:parseFloat 运算符 更新时间:2023-09-26
淘汰扩展器页面的示例1描述了一种四舍五入用户输入并确保其仅为数字的方法。
它工作得很好,但从来源来看,他们做了一件我不明白的特殊事情,那就是在第8行他们这样做:
parseFloat(+newValue)
newValue
是一个字符串。
当我最初问这个问题时,我不知道+
做了什么——一些进一步的戳和从我得到的一个初始答案到不同MDN页面的链接表明,它是一个等价于number(str)
的一元运算符,并且+str
和parseFloat(str)
之间存在一些差异(以字母字符结尾的字符串的处理和十六进制的解释似乎是头条新闻)。
我仍然不明白为什么在这种情况下+
需要封装在parseFloat
中,尽管我开始认为这可能是一个拼写错误。。。
引用parseFloat
:的MDN文档
parseFloat
解析其参数(一个字符串),并返回一个浮点数。如果遇到符号(+或-)、数字(0-9)、小数点或指数以外的字符,将返回该点之前的值,并忽略该字符和所有后续字符。允许使用前导空格和尾随空格
parseFloat('0.32abcd') // -> 0.32
parseFloat(+'0.32abcd') // -> NaN
在对文档进行了一些挖掘并运行了一些测试之后,除了解析可能包含数字的字符串之外,似乎没有理由使用parseFloat
,这些字符串带有非数字的数字踪迹,eq:
parseFloat('31.5 miles') // -> 31.5
parseFloat('12.75em') // -> 12.75
对于字符串包含数字+
的任何其他情况,是最快和首选的方式(引用MDN文档作为一元加运算符):
一元加号是将某物转换为数字的最快也是最受欢迎的方法,因为它不会对数字执行任何其他操作。
请参阅parseFloat与一元测试用例,了解它的速度
以前的链接断了,所以这里是新的测试,显示一元是如何更快。
相关文章:
- 这是什么 ==- javascript 运算符
- jQuery/JS包含运算符或类似运算符
- Javascript逻辑运算符和字符串/数字
- 模运算符前的双水平线
- jQuery's trim()的前缀为not运算符
- Javascript,如果条件在没有&&逻辑运算符当&&它不起作用
- 如果在构造函数中有“返回”,则在 JavaScript 中的新运算符中做了什么
- 如何使用排列运算符来获取具有命名参数的函数的所有参数
- JavaScript 中三元条件和逻辑和运算符的运算符优先级
- 用于验证JS中逻辑运算符表达式的正则表达式
- 什么's是相当于LINQ's SelectMany运算符
- JavaScript-===vs===运算符性能
- 在 Jquery/Javascript 中使用多个 OR (||) 运算符时如何设置变量
- 三元运算符检查多个字符串
- 调用C++中JScript中的instanceof运算符(IDispatch/IDispatchEx)
- ||(OR)运算符如何在赋值中工作
- 在 JavaScript 对象中设置要使用的运算符的属性
- 哪个JavaScript相等运算符(==或===)更快
- 逻辑和/或运算符-意外的最终结果
- +运算符与parseFloat