闲来无事,看了不少js的奇淫技巧,其实很多只是卖弄知识真正用上的并不多,为了满足好奇心做了一个实验。

这个实验是关于将字符串转成数字的,因为前端处理小数会出很多问题,所以一般都是后台的同学把数据处理好了给前端,但是后端传过来的是字符串,而这些字符串有些是带小数点的,有些是整数,传过来有时候要做一些操作,字符串做不了所以要做类型转换,即String --> Number。

对于类型转换有常用的几种方法,现在一起看看这几种方法的速度如何?

字符串转数字的方法有,Number,parseInt,parseFloat,还有隐式转换加号(+)和算式表达(- 0)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body><p id="content"></p><script src="../lib/jquery.js"></script><script>$(function(){var str = '3.222';var res = [];//19.06ms
            console.time('test');for(var i = 0;i < 100000; i++){res.push(+str);}console.timeEnd('test');// 9.35ms
            console.time('Number');for(var i = 0;i < 100000; i++){res.push(Number(str));}console.timeEnd('Number');// 6.22ms
            console.time('parseInt');for(var i = 0;i < 100000; i++){res.push(parseInt(str));}console.timeEnd('parseInt');//8.84ms
            console.time('parseFloat');for(var i = 0;i < 100000; i++){res.push(parseFloat(str));}console.timeEnd('parseFloat');});</script>
</body>
</html>

结论就是:parseInt > parseFloat > Number > 隐式类型,这里是加号(+)

测试的浏览器用的是firefox,chrome,发现firefox的差异性较大,chrome下Number和隐式转换差不多,parseInt和parseFloat差不多。

虽然代码写起来很方便少了字符却没有带来性能上的提升,所以说有些奇淫技巧不能乱用啊

其实这个实验的起源于+new Date(),看到这个技巧很鸡冻,很风骚,做了实验后才看清事物的本质。

转载于:https://www.cnblogs.com/masita/p/7426493.html

字符串转数字测试--知识备忘相关推荐

  1. VB.net小技巧——VB中利用TreeView控件和Box控件做知识备忘

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 VB.net小技巧--VB中利用TreeView控件和Box控件做知识备忘 这里不涉及代码的展示,主要是为了阐述一种做笔记的思想. 为 ...

  2. 前端基础知识备忘——parseInt

    先来看一道经常会看到的前端面试题: [1,2,3,4,5,6,7,8,9].map(parseInt) 输出的结果是什么? 很多第一次看到这道题或者是js基础不太牢靠的前端朋友可能会顺口就来,so e ...

  3. C++/C中的小知识备忘

    C++/C中防止头文件的重复包含的解决办法 为了避免头文件重复包含,有两种方式可以选择,一种是#ifndef方式,由标准支持:一种是#pragma once方式,编译器提供. //方式一 #ifnde ...

  4. 知识备忘phpcms 简单解析一 数据表字段

    PHPCMS V9帮助中心 数据结构 phpcms v9 数据... phpcms v9 数据... PHPSSO 数据库结... phpcms v9 数据表结构 在线版 PHPCMS V9 数据结构 ...

  5. Spring Security 框架学习之十二 单点登录原理(部分注解是我原创,其余是转载网上电子书内容,献丑了,写的不对请大家见谅,如有侵权我立即删除)(主要是为了自己学的知识备忘)

      下图中的redis通常作为抽离出来的独立的外部session对象数据容器 (上面说的是:如果将共享顶级域名下的各个子系统的sessionId(会话标识信息),session对象数据信息,用户身份认 ...

  6. 20,sql 测试 : 1.4g 文件的 sql 运行测试,表关联,日期转换,字符编码,乱码解决,程序的 shell 执行,字符串转数字,三个隐式转换,用列分区,输出,sum over

    一 ,基础操作 : 1 ,表关联 : select stock.area,goods.smallLei,goods.typeColorId,weekofyear(to_date(stock.sellD ...

  7. UE4入门-常见基本数据类型-字符串(备忘)

    原文地址:https://blog.csdn.net/u012793104/article/details/78470388 字符串 FName FName 通过一个轻型系统使用字符串.在此系统中,特 ...

  8. 正则表达式入门及备忘

    概述 正则表达式,主要是用符号描述了一类特定的文本(模式).而正则表达式引擎则负责在给定的字符串中,查找到这一特定的文本. 本文主要是列出常用的正则表达式符号,加以归类说明.本文仅仅是快速理解了正则表 ...

  9. c# ui 滚动 分页_UI备忘单:分页,无限滚动和“加载更多”按钮

    c# ui 滚动 分页 重点 (Top highlight) When you have a lot of content, you have to rely on one of these thre ...

最新文章

  1. 基于matlab的捷联惯导算法设计及仿真,基于 Matlab 的捷联惯导算法设计及仿真1doc.doc...
  2. 使用ueditor实现多图片上传案例——Dao层(BaseDao)
  3. 幼儿课外活动游戏_幼儿园户外游戏活动大全
  4. 统计建模与r软件_【统计建模与R软件笔记】008 描述统计量(1)
  5. python 异步 生产者 消费者_python 线程通信 生产者与消费者
  6. 3-2:常见任务和主要工具之存储介质
  7. 电子科技大学计算机应用技术专科段,2020年电子科技大学成都学院计算机应用技术(专科)专业介绍...
  8. CentOS查看系统信息命令和方法
  9. CentOS7|Redhat7挂载NTFS格式磁盘
  10. 在电脑上构建自我意识
  11. VLC保存网络流到软件和fiddler下载视频
  12. xcode6更新证书错误:No matching provisioning profiles found 解决方案
  13. java垃圾回收器有哪些_各种Java垃圾回收器的比较总结
  14. 数据库系统概念第六版 第五章练习题 2 4
  15. 【解决】长虹电视连接不上WiFi
  16. 利用iframe跨域请求
  17. 2015年最受欢迎的十篇神秘的程序员漫画
  18. Qt编写数据可视化大屏界面电子看板1-布局方案
  19. 前端HTML学习 table标签 知识点与使用
  20. 离散傅里叶变换的算法实现

热门文章

  1. 令人失望的IE7Beta,仍然不支持Web标准。
  2. scala初学之Tuple、Array、Map、文件操作入门实战
  3. elasticsearch根据某个字段来查询,以及通过时间筛选
  4. springboot项目和云服务器,以及域名的申请和使用(后续持续更新)
  5. 黑苹果2k屏_一加手机屏幕新特性:120Hz、2K+ OLED、10bit
  6. linux cpp标准库,标准库以及标准头文件
  7. 5b计算机联锁系统_力控科技油库调度管理系统应用案例
  8. 计算机学院运动会通讯稿,2021大学运动会通讯稿篇
  9. python的应用图标_python实现根据图标提取分类应用程序实例
  10. ElasticSearch highlight搜索结果高亮显示(英文检索)