+ 运算符与 parseFloat

2024-01-08

实施例1 http://knockoutjs.com/documentation/extenders.html淘汰扩展器页面的 描述了一种对用户输入进行四舍五入并确保它只是数字的方法。

它工作得很好,但是查看源代码,他们做了一件我不明白的奇怪的事情,那就是在第 8 行,他们这样做了:

parseFloat(+newValue)

newValue是一个字符串。

当我最初问这个问题时我不知道什么+做了 - 进一步poking https://stackoverflow.com/questions/12227594/which-is-better-numberx-or-parsefloatx and a 链接到不同的 MDN 页面 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Unary_plus_()从我得到的最初答案之一表明它是一个一元运算符,相当于number(str)并且之间存在一些差异+str and parseFloat(str)(以字母字符结尾的字符串的处理和十六进制的解释似乎是头条新闻)。

我还是不明白为什么+在这种情况下需要包裹在parseFloat虽然我开始认为这可能是一个错字......


引用 MDN 文档parseFloat https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/parseFloat:

parseFloat解析其参数(一个字符串),并返回一个浮点数。如果遇到除符号(+或-)、数字(0-9)、小数点或指数以外的字符,它返回到该点的值并忽略该字符和所有后续字符。允许前导和尾随空格。

Using [unary plus operator][2] you may be sure that `parseFloat` operates on `Number`, which is only useful if you want to be more strict about results but still want to use a `parseFloat`
parseFloat('0.32abcd') // -> 0.32
parseFloat(+'0.32abcd') // -> NaN
**Update:**

经过一番深入研究文档并运行一些测试后,似乎没有理由使用parseFloat除了解析可能包含带有非数字尾数的数字的字符串之外,eq:

parseFloat('31.5 miles') // -> 31.5
parseFloat('12.75em') // -> 12.75

对于字符串包含数字的任何其他情况+ is a 最快且首选方式(引用一元加运算符的 MDN 文档 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Unary_plus):

一元加是将某些内容转换为数字的最快且首选的方法,因为它不对数字执行任何其他操作。

See parseFloat 与一元测试用例 http://jsperf.com/parsefloat-versus-unary/3它有多快。

之前的链接已损坏,所以这是新的测试 https://jsben.ch/T7P7I这表明一元速度更快。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

+ 运算符与 parseFloat 的相关文章

  • 如何使用 JavaScript 中的值填充下拉列表?

    我在 Tridion CMS 扩展中的功能区工具栏按钮中添加了一个按钮 单击该按钮后 将显示一个弹出页面 其中包含两个下拉菜单 通过更改第一个下拉控件中的值 我应该填充第二个下拉控件的值 就我而言 我正在使用ASP drop down li
  • jQuery 选择 # id 以单词为前缀,计数器为后缀

    有没有办法用 jQuery 选择所有带有前缀 my 和后缀 0 9 的 id 像这样的 my 1 4 还是可以用循环来实现 div div div div div div div div div div 第一个想法 似乎效果很好 div i
  • jquery window.open 在 ajax 成功中被阻止

    尝试在我的 ajax 成功调用中打开一个新的浏览器窗口 但是 它被阻止为弹出窗口 我做了一些搜索 发现用户事件需要绑定到 window open 才能避免这种情况发生 我还找到了这个解决方案 您可以在 ajax 之前打开一个空白窗口 然后在
  • 仅一页 JavaScript 应用程序

    您是否尝试过单页 Web 应用程序 即浏览器仅从服务器 获取 一页 其余部分由客户端 JavaScript 代码处理 此类 应用程序页面 的一个很好的例子是 Gmail 对于更简单的应用程序 例如博客和 CMS 使用这种方法有哪些优点和缺点
  • HTML2canvas 和 Canvas2image,下载的屏幕截图不显示我的 HTML 图像

    我一直在开发一个 HTML 页面 我想将其转换为图像 我一直在使用 html2canvas 和 canvas2image 脚本并采用此代码http jsfiddle net 8ypxW 3 http jsfiddle net 8ypxW 3
  • 在闪亮的数据表中为每个单元格显示工具提示或弹出窗口?

    有没有什么方法可以为 r闪亮数据表中的每个单元格获取工具提示 有很多方法可以获取悬停行或列 但我找不到一种方法来获取行和列索引并为每个单元格显示不同的悬停工具提示 任何人都可以修改以下代码吗 library shiny library DT
  • javascript中按tab键时如何调用函数?

    我有一个这样的功能 function whenEmpty field if field value field style backgroundColor ffcccc alert Please fill the field field f
  • 如果链接包含特定文本,jQuery 将类添加到 href

    我的网站上的列表中有一些动态填充的链接 这些链接链接到文件 是否可以使用 jQuery 查看文件名是否以 pdf 结尾 并在 href 或类似的链接文本以 mp3 结尾时添加一个类 例如 我的列表中有以下链接 文件1 pdf 歌曲1 mp3
  • Google Chrome 106 可拖动导致元素消失

    使用拖放元素时 绝对定位元素中包含的大多数其他元素都会从屏幕上消失 如果我调整窗口大小 这些元素会出现 但在开始拖动时会再次消失 我在最新版本的 Google Chrome 106 和 Beta 版本 107 0 5304 18 以及现在的
  • 使用 JS 合并具有相同值的相邻 HTML 表格单元格

    我已经为此苦苦挣扎了一段时间 我有一个根据一些 JSON 数据自动生成的表 该数据可能会有所不同 我想合并第一列中具有相同值的相邻单元格 例如此表中的 鱼 和 鸟 table tr td fish td td salmon td tr tr
  • Chartjs刻度标签位置

    尝试让 Y 轴刻度标签看起来像image https i stack imgur com XgoxX png 位于秤顶部且不旋转 缩放选项当前如下所示 scales yAxes id temp scaleLabel display true
  • 为什么“tbody”不设置表格的背景颜色?

    我在用 tbody 作为 CSS 选择器来设置background color在一个表中 我这样做是因为我有多个 tbody 表内的部分 它们具有不同的背景颜色 我的问题是 当使用border radius在细胞上 细胞不尊重backgro
  • Select2 下拉列表动态添加、删除和刷新项目

    这让我发疯 为什么 Select2 不能在其页面上实现清晰的方法或示例如何在 Select2 上进行简单的 CRUD 操作 我有一个 select2 从 ajax 调用获取数据
  • Nodejs mysql 获取正确的时间戳格式

    我在用着mysqljs https github com mysqljs mysql得到结果后sql我变得不同TimeStamp格式如下 created at Sat Jul 16 2016 23 52 54 GMT 0430 IRDT 但
  • 如果数字小于 10,则显示前导零 [重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 相当于 printf string format https stackoverflow com questions 610406 javascript equivalent t
  • JavaScript onresize 事件多次触发

    我在尝试仅在触发 onresize 事件时运行一次函数时遇到一些麻烦 我已经看过这个问题DOM onresize 事件 https stackoverflow com questions 1500312 javascript onresiz
  • 无法在前端使用 JavaScript Fetch API 将文件上传到 FastAPI 后端

    我正在尝试弄清楚如何将图像发送到我的 API 并验证生成的token那是在header的请求 到目前为止 这就是我所处的位置 app post endreProfilbilde async def endreProfilbilde requ
  • 数据表日期范围过滤器

    如何添加日期范围过滤器 like From To 我开始进行常规搜索和分页等工作 但我不知道如何制作日期范围过滤器 我正在使用数据表 1 10 11 版本 My code var oTable function callFilesTable
  • 如何在 javascript 正则表达式中匹配平衡分隔符?

    我原以为这个问题是不可能的 据我所知 Javascript 的正则表达式既没有递归插值 也没有漂亮的 NET 平衡组功能 但问题就在那里 如问题 12 所示正则表达式 alf nu http regex alf nu 匹配平衡对 lt an
  • 在 GWT 中,在任何主机页标记上添加事件处理程序

    我想为任何标签添加 MouseOver 事件处理程序 举个例子 我想为旧版 HTML 页面中的每个锚点页面添加事件处理程序 继GWT指南 http code google com webtoolkit doc 1 6 DevGuideUse

随机推荐

  • Dart/Flutter 中什么时候应该使用分号?

    我是 Dart Flutter 的初学者并尝试阅读this https dart dev guides language language tour但我仍然不明白什么时候使用分号 为什么我们不在小部件的每个括号末尾插入分号 Dart中有两种
  • 我可以查出坐标是否在城市内吗?

    假设我有一个 LatLng 对象 有什么方法可以检查它是否代表城市内的可能位置 如何获得城市的边界 我正在使用谷歌地图V3 您尝试过反向地理编码吗 http code google com apis maps documentation j
  • 程序收到信号:“EXC_BAD_ACCESS”

    我有一个字符串变量 它存储日期选择器中的日期 但是当我在其他函数中使用它的值时 我收到类似程序收到信号的错误 EXC BAD ACCESS 注意 变量是全局定义的 code void changedDate UIDatePicker pic
  • 从相机预览中的触摸事件中检索准确的 RGB 值

    我一直在开发一个 Android 应用程序 它只需要检索并在相机预览上显示触摸事件的坐标和 RGB 值 我是这种编程语言的初学者 我只是想尝试一下 但应用程序在触摸事件期间不断崩溃 这是我在 Android 中尝试过的代码 When cop
  • 在 PyQt 中显示其他语言字符

    PyQt4 有没有办法显示其他语言字符 如果有 我应该采取什么方法 方向 提前致谢 Qt 使用 Unicode 并且应该能够以您拥有合适字体的任何语言显示 Unicode 文本 例如 Roberto Alesina 的简单 Hello Wo
  • 新的“dynamic”C# 4.0 关键字是否弃用了“var”关键字?

    当 C 4 0 出现时 我们有了如此处描述的动态关键字excellent presentation by Anders Hejlsberg http channel9 msdn com pdc2008 TL16 C 的发展速度比我能跟上的要
  • OSGi - 这项技术有多成熟?

    我有一个要求 我需要共享一些网络资源 jsp html js images css等 跨越不同Spring based Struts 2应用程序 似乎OSGi可以用来实现这个吗 有人可以指点一下如何实现这一目标吗OSGi 其次我想知道的是O
  • Java 线程/易失性

    我有一个线程 class Foo extends Thread boolean active true public void run while active do stuff public void end active false p
  • 'in' 表示两个复杂度最低的排序列表

    我有两个sorted列表 例如 a 1 4 7 8 b 1 2 3 4 5 6 我想知道其中的每一项a如果它在b 对于上面的例子 我想找到 a in b True True False False 或具有索引 其中a in b is Tru
  • php检查数组值是否重复[重复]

    这个问题在这里已经有答案了 我有以下数组 PHP arr array A A B C 我想检查值 如果值重复则必须发出警报错误 PHP chk array count values array if chk 0 lt 1 chk 2 lt
  • Visual Studio 2015突然不想在类中创建新变量[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我几乎一整天都在为这个问题苦苦挣扎 我在互联网上找不到任何答案 我知道这个修复只是为了改变一件小事 但我不知道是哪一件 卸载 使用
  • SQL LIKE % 未搜索

    我想使用 SQL LIKE 函数执行简单的搜索 不幸的是 由于某种原因 它似乎不起作用 下面是我的代码 private void gvbind connection Open string sql if txtSearch Text Tri
  • 将小数转换为另一种基数的时间复杂度

    这是计算十进制数的基本版本的代码 我不确定它的时间复杂度 谢谢 public static String convertToBase int num int base if base gt 36 throw new IllegalArgum
  • 我有一个包含 14 个静态方法和 4 个静态属性的类 - 这很糟糕吗?

    我一直在编写一个 PHP 类 该类正好有 450 行长 它包含 14 个静态方法和 4 个静态属性以及 6 个常量 以及私有 construct and clone 我想知道我是不是做错了什么 我的班级是邪恶的吗 当您使用该类时 您总是调用
  • Firebase 的喜欢/不喜欢功能

    该系统本身很容易理解 但实施起来却很棘手 此外 安全原因让我思考如何做到这一点 我正在考虑让该功能在前端 Firebase 脚本中工作 只需执行所有操作即可检查该用户是否已经发布了喜欢 不喜欢的内容 并在用户单击时删除 添加 切换 问题在于
  • 更改 Rmarkdown pdf 中 Kable 的字体

    当编织为pdf时 有没有办法改变Rmarkdown中kable的字体 我可以找到很多有关更改大小或粗体等的信息 但不能找到有关更改实际字体的信息 我只想要一些无衬线的东西 降价文档示例 title R Notebook output pdf
  • 设置默认日期时间格式c#

    有没有办法设置或覆盖整个应用程序的默认日期时间格式 我正在用 C Net MVC 1 0 编写一个应用程序 并使用大量泛型和反射 如果我可以将默认的 DateTime ToString 格式重写为 dd MMM yyyy 则会简单得多 当站
  • WPF:使用旋转方块进行碰撞检测

    参考这个编程游戏 https stackoverflow com questions 505040 developing a robocode type game with net for a school assignment我目前正在建
  • PHP 的怪癖和陷阱 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • + 运算符与 parseFloat

    实施例1 http knockoutjs com documentation extenders html淘汰扩展器页面的 描述了一种对用户输入进行四舍五入并确保它只是数字的方法 它工作得很好 但是查看源代码 他们做了一件我不明白的奇怪的事