js怎么把字符串转数字
最近在掘金上看到一位大三的学生总结的一个js面试题:将字符串转换成数字。看了他的文章真让我想起去年的自己。
parseInt(num);
还是写代码比较快乐:如下
arseInt(12)
12
parseInt(12.09)
12
parseInt(-0.98)
-0
parseInt('12')
12
parseInt('12df')
12
parseInt('adh')
NaN
parseInt('1+2')
1
parseInt('4*6')
4
parseInt('3/2')
3
parseInt('2-1')
2
parseInt('12.png')
12
parseInt: 没有传入基数时,默认是传入的基数为10 parseInt(num, 10),如果你不知道num属性的类型,不要使用parseInt进行字符串转数字。
parseInt(num, 10);
我们大多数情况下都忽略了parseInt的第二个参数:radix,它的原型是这样的parseInt(string, radix)
parseInt("10"); //返回 10
parseInt("19",10); //返回 19 (10+9)
parseInt("11",2); //返回 3 (2+1)
parseInt("17",8); //返回 15 (8+7)
parseInt("1f",16); //返回 31 (16+15)
parseInt("010"); //未定:返回 10 或 8
["1","2","3"].map(parseInt) //[1,NaN,NaN]
parseInt("123", 37) //NaN 超过范围
parseInt("123", 0) //123 当做10进制处理
parseInt("123", undefined) //123 当做10进制处理
parseInt("123", null) //123 当做10进制处理
我还写了一些没有规律的:
parseInt(12,2)
1
parseInt(10,2)
2
parseInt(13,3)
1
parseInt(188,4)
1
parseInt(7,8)
7
parseInt('1333',9)
1002
parseInt('11',2)
3
parseInt(11,2)
3
parseInt(010)
8
parseInt('010')
10
parseInt(78,8)
7
parseInt(1233,8)
667
parseInt('123',8)
83
parseInt("123", 16) === parseInt("0x123")true
parseFloat(num)
如果你不解析16进制数,这是一个非常好的选择
parseInt(-0xFF) // returns -255
parseInt("-0xFF") // returns -255
parseFloat(-0xFF) // returns -255
parseFloat("-0xFF") // returns 0
parseFloat(12.333333)
12.333333
parseFloat(12.89ssa)
VM1397:1 Uncaught SyntaxError: Invalid or unexpected token
parseFloat('12gggg')
12
parseFloat('undefined')
NaN
parseFloat('sddd')
NaN
parseFloat(12.png)
VM1508:1 Uncaught SyntaxError: Invalid or unexpected token
parseFloat('12.png')
12
Number(num)
Number(012)
10
Number(12)
12
Number(-0.12)
-0.12
Number('122')
122
Number('0123')
123
Number('12png')
NaN
Number('12as')
NaN
Number(023)
19
Number(026)
22
注意:023实际上是一个八进制数,无论你怎么做,都是返回19;对于没有单引号或双引号的十六进制数一样。
Number也是JsPerf中最慢的之一。
Number:几乎不用它。
~~num
可以把字符串转换成整数,但他不是浮点数。如果是一个字符串转换,它将返回0;
~~1.23 // returns 1
~~"1.23" // returns 1
~~"23" // returns 23
~~"Hello world" // returns 0
~~3.4
3
~~-0.3
0
~~0.3
0
~~2.3444
2
~~-2.3
-2
一元运算符
num / 1 // 除一个数
num * 1 // 乘一个数
num - 0 // 减去0
+num // 一元运算符 “+”
"1.23" * 1 // returns 1.23
"0xFF" - 0 // returns 255
"0xFF.jpg" / 1 // returns NaN
+"023" // returns 23
总结:
负十六进制数字符串转换为数字时。最好使用带基数的 parseInt 解析为数字。明确知到进制数的也是通过带基数的 parseInt 解析为数字。其他的建议使用一元运算符+来将字符串转数字,也是最快的。
js怎么把字符串转数字相关推荐
- JS数组、字符串、数字的相互转化
文章目录 JS数组.字符串.数字的相互转化 数组转字符串 字符串转数组 字符串转数字 数字转字符串 数组转数字数组 数字转数组 JS数组.字符串.数字的相互转化 数组转字符串 方法名 说明 返回值 t ...
- 前端百题斩【006】——js中三类字符串转数字的方式
写该系列文章的初衷是"让每位前端工程师掌握高频知识点,为工作助力".这是前端百题斩的第6斩,希望朋友们关注公众号"执鸢者",用知识武装自己的头脑. js中字符串 ...
- JS操作符转化字符串为数字
随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) from:http://cnodejs.org/topic/53400c0c018dc21c220082b3 ...
- JS 正则提取字符串中数字
方法一 string.replace(/[^0-9]/ig, '') 这种方法是直接得到字符串数字 var string = 'func56t9i10on'var number = string.re ...
- js字符串与数字相加减
var a='123'; var b=a+1; console.log(b); 输出为1231,type是string var a='123'; var b=a-1; console.log(b); ...
- js 判断是不是数字||判断字符串是不是数字(正则表达式)
js使用正则表达式判断对象是不是数字,或者字符串是不是数字,或者是不是数字类型 1 //判断是不是一个数字 或者 一个字符串里全是数字 2 isNumber (value) { 3 if (value ...
- js 缺少标识符、字符串或数字
2019独角兽企业重金招聘Python工程师标准>>> 在IE8兼容模式下出现 js 缺少标识符.字符串或数字 是由于js代码中有些语句的结尾多了一个 , 删去即可 转载于:ht ...
- Js将字符串转数字的方式
Js将字符串转数字的方式 Js字符串转换数字方方式主要有三类:转换函数.强制类型转换.弱类型隐式类型转换,利用这三类转换的方式可以有5种转换的方法. parseInt() parseInt()和Num ...
- JS字符串过滤数字_过滤大写数字
JS字符串过滤数字_过滤大写数字 代码案例: //数字替换 if(data.summary){data.summary=data.summary.replace(/[\d|壹|贰|叁|肆|伍|陆|柒| ...
最新文章
- 酷炫的深度学习网络图怎么绘制出来的?
- HCNE题库附件、可下载
- JDK1.6历史版本的下载
- uni-app开发微信小程序之获取当前地址
- Javascript 调试技巧
- 微型计算机中 奔三 指,计算机基础知识180题.docx
- ubuntu系统颜色更改
- 3.3 垃圾回收算法
- MATLAB自适应平滑滤波
- 个人朋友圈时代过去了,企业微信朋友圈开辟营销新思路
- Flask的Jinjia2模板
- 华为eNSP模拟器vlan 隔离技术的实现
- 79.(cesium之家)cesium动态纹理-颜色
- ckfinder php 配置,PHP中Ckeditor Ckfinder配置图片上传功能
- Hipster the Kid - “Thinking Of” WA47电子管麦克风录制说唱人声
- 企鹅杏仁集团完成2.5亿美元融资,投后估值超过10亿美元...
- 35BYJ46步进电机
- 兼容iOS 10 _升级xcode8_适配(四)
- 苹果6手机服务器停止响应,iphone6被停用怎么办?苹果6被停用解决方法汇总
- 李宏毅2022机器学习HW5解析