JS字符串转为数值方法详解
在JS中,支持字符串类型和整数等数值类型互转;以下我们研究一下数据类型转换。
目录
- 1 parseInt:字符串转为整数
- 1.1 基本用法
- 1.2 进制转换
- 2. parseFloat:字符串转为浮点数
- 3. Number:数值转换
- 4. 总结
1 parseInt:字符串转为整数
1.1 基本用法
最简单的是将字符串直接转为十进制,此时parseInt()只需要传入一个参数即可。如下:
parseInt('123') // 123
当此时第一个字符为空格或者第一个为数字,其他的字符不能识别时,会自动去除空格以及不能被识别的字符,如下:
parseInt(' 20') // 20
parseInt('8a') // 8
parseInt('12**') // 12
parseInt('12.34') // 12
parseInt('15e2') // 15
parseInt('15px') // 15
如果字符串的第一个字符不能转化为数字(后面跟着数字的正负号除外),返回NaN,如下:
parseInt('abc') // NaN
parseInt('.3') // NaN
parseInt('') // NaN
parseInt('+') // NaN
parseInt('+1') // 1
若字符串为带小数点的浮点数,或者直接为浮点数,则parseInt()只取整数部分进行转化,如下:
parseInt('1.99') // 1
parseInt(1.99) // 1
如果字符串以0x或0X开头,parseInt会将其按照十六进制数解析。如果字符串以0开头,将其按照10进制解析。如下:
parseInt('0x10') // 16
parseInt('011') // 11
1.2 进制转换
parseInt 方法还可以接受第二个参数(2到36之间),表示被解析的值的进制,返回该值对应的十进制数。默认情况下,parseInt 的第二个参数为10,即默认是十进制转十进制。如下:
parseInt('1000') // 1000
// 等同于
parseInt('1000', 10) // 1000//转换指定进制数。
parseInt('1000', 2) // 8
parseInt('1000', 6) // 216
parseInt('1000', 8) // 512
如果字符串包含对于指定进制无意义的字符,则从最高位开始,只返回可以转换的数值。如果最高位无法转换,则直接返回NaN。如下:
parseInt('1546', 2) // 1
parseInt('546', 2) // NaN
以上“5”对于二进制来说是无意义字符,故而第一个返回 ‘1’,第二个返回’NaN’。
还有一个有趣的现象,如果parseInt 的第一个参数不是字符串,会被先转为字符串。如下:
parseInt(0x11, 36) // 43
parseInt(0x11, 2) // 1// 等同于
parseInt(String(0x11), 36)
parseInt(String(0x11), 2)// 等同于
parseInt('17', 36)
parseInt('17', 2)
此时若第一个字符为0后面跟着有效字符,那么会被当做八进制数转化,要注意这个点。
2. parseFloat:字符串转为浮点数
parseFloat方法用于将一个字符串转为浮点数。
parseFloat('3.14') // 3.14
如果字符串符合科学计数法,则会进行相应的转换。如下:
parseFloat('314e-2') // 3.14
parseFloat('0.0314E+2') // 3.14
与parseInt类似,如果字符串包含不能转为浮点数的字符,则不再进行往后转换,返回已经转好的部分,如果参数不是字符串,或者字符串的第一个字符不能转化为浮点数,则返回NaN。如下:
parseFloat('3.14more non-digit characters') // 3.14
parseFloat('FF2') // NaN
parseFloat('') // NaN
3. Number:数值转换
Number() 方法可以可识别的字符串直接转化为数值,当字符串内是整数则被转化为整数,是浮点数则被转化为浮点数,若出现不可识别的字符,则直接被转为NaN*。如下:
Number("0x55") // 85
Number("55") // 55
Number("55.5") // 55.5
Number("55a") // NaN
Number() 方法会将空字符串转为0,而parseFloat会将空字符串转为NaN。
这些特点使得Number函数的转换结果不同于parseFloat。如下:
parseFloat(true) // NaN
Number(true) // 1parseFloat(null) // NaN
Number(null) // 0parseFloat('') // NaN
Number('') // 0
4. 总结
从以上我们可以看出,parseInt 、parseFloat 以及Number的返回值只有两种可能,要么是数值,要么是 NaN,而对于不能识别的情况会自动截取或者返回NaN,此三种方法一般可以看情况选用。
JS字符串转为数值方法详解相关推荐
- python中时间戳、字符串之间转换详解
[转载]python中时间戳.字符串之间转换详解 (2013-04-30 17:36:07) 转载▼ 标签: 转载 原文地址:python中时间戳.字符串之间转换详解作者:doris0920 1)秒数 ...
- python中字符串切片取奇数_Python中的字符串切片(截取字符串)的详解
Python中的字符串切片(截取字符串)的详解 字符串索引示意图 字符串切片也就是截取字符串,取子串 Python中字符串切片方法 字符串[开始索引:结束索引:步长] 切取字符串为开始索引到结束索引- ...
- python对输入的字符串进行解析_python数据类型_字符串常用操作(详解)
这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 ...
- python中字符串乘法_python leetcode 字符串相乘实例详解
给定两个以字符串形式表示的非负整数 num1 和 num2 ,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2", ...
- JVM——字符串常量池详解
关注微信公众号:CodingTechWork,一起学习进步. 引言 在Java开发中不管是前后端交互的JSON串,还是数据库中的数据存储,我们常常需要使用到String类型的字符串.作为最常用也是 ...
- python加密字符串小写字母循环后错两位_python数据类型_字符串常用操作(详解)
这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 ...
- nodejs 本地php服务器,node.js创建本地服务器详解
本文主要和大家分享node.js创建本地服务器详解,简易上手node.js后,我们就可以在自己电脑上创建本地服务器了.希望能帮助到大家. 一.先上代码.//请求Node.js自带的http模块. va ...
- js打印三角形超详解
js打印三角形超详解 j控制星星的总行数,i控制每行星星的打印个数 打印图形如下: (1) (2) //str=""用来存储星星// 理解步骤1:在一行输出6个星星如何操作,在循环 ...
- JAVA算法:回文字符串相关问题详解(回文字符串总结)
JAVA算法:回文字符串相关问题详解(回文字符串总结) Q1. 编写一个工具方法判断给定的字符串是否为回文字符串 例如:给定一个字符串"aabbaa",判断该字符串是否为回文字符串 ...
- php分解字符串_php字符串分割的详解
php字符串分割的详解 比较两个字符串是否相等,最常见的方法就是使用"==="来判断,至于它和"=="的.区别,简单来说就是前者强调"Identica ...
最新文章
- SpringBoot简单使用
- 电大最全计算机应用技术基础答案,电大最新最全计算机应用技术基础答案100%通过率...
- 追求极简:Docker镜像构建演化史
- JVM内存溢出分析-实战JVM(二)
- crawler4j mysql_Nutch、heritrix、crawler4j优缺点
- UOJ#33-[UR #2]树上GCD【长链剖分,根号分治】
- 第一季6:海思方案中uboot、kernel和rootfs的烧写方法
- 屠杀机器人和无处不在的监控:AI是我们最大的生存威胁?
- 七牛上传图片html,MWEB+七牛 上传图片
- 60-100-032-使用-MySQL大小写敏感的解决方法
- js模仿块级作用域(js没有块级作用域私有作用域)
- OpenSplice DDS 分布式DDS网络架构(DDS 6.9.0+VS 2013+Qt 5.8.0 )
- 缓存-问题:缓存穿透 缓存雪崩 缓存击穿
- LINUX SHELL脚本多行注释
- MNIST数据集下载与读取
- (附源码)计算机毕业设计ssm-高校科研信息管理系统
- 计算机组装训练知识总结,组装知识总结
- 小路工作室GHOST XP 2007典藏版(完美XP)
- uniapp中scroll-view的下拉刷新
- R语言 非参数检验:Mann-Whitney检验和Wilcoxon检验