JS字符串转换为数字,Number(),parseInt()和parseFloat()的区别
一. Number()
1.参数为Boolean时,true为1,false为2
Number(true); // 1
Number(false); // 0
2.参数为String时
// 1. 当字符串中有字母时
Number("abc"); // NaN
Number("abc123"); // NaN
Number("123abc"); // NaN// 2. 当字符串中只有数字时(数字前可以有正负号)
Number("123"); // 123
Number("+123"); // 123
Number("-123"); // -123
Number("0123"); // 123 忽略前导0// 小数
Number("1.23"); // 1.23// 十六进制数会转为十进制
Number("0xf"); // 15// 空字符串转为0
Number(""); // 0
3.参数为null,返回0
Number(null); // 0
4.参数为undefined,返回NaN
Number(undefined); // NaN
5.参数为对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果为NaN,则调用对象的toString()方法,然后再按照前面的规则转换返回的字符串值。
// 数字数组
Number([1, 2]); // NaN
Number([1]); // 1// 字符串数组
Number(["1", "2"]); // NaN
Number(["1"]); // 1
Number(["a"]); // NaN
Number([null]); // 0
6.数字则转换成对应的数值
Number(1); // 1
Number(-0.1); // -0.1
二. parseInt()
1.参数为Boolean时,返回NaN
parseInt(true); // NaN
parseInt(false); // NaN
2.参数为String时,一个字符一个字符解析,直到解析完或遇到第一个非数字字符。
注:小数点也不是有效的数字字符。
// 既有数字,又有字符
parseInt("abc123"); // NaN
parseInt("123abc"); // 123// 整数
parseInt("000123"); // 123 忽略前导0// 小数
parseInt("1.23"); // 1// 十六进制,第二个参数指定转换时使用的基数(即几进制)
parseInt("0xAF"); // 175
parseInt("AF"); // NaN
parseInt("0xAF", 16); // 175 指定按十六进制解析
parseInt("AF", 16); // 175 指定按十六进制解析// 八进制
parseInt("070"); // 70 ES5认为其为70(十进制)
parseInt("70"); // 70
parseInt("070", 8); // 56 指定按八进制解析
parseInt("70", 8); // 56 指定按八进制解析// 空字符
parseInt(""); // NaN
3.参数为对象
// 数组,解析第一个值
parseInt([1,2]); // 1
parseInt([1, "a"]); // 1
parseInt(["a", 1]); // NaN
三. parseFloat()
1.参数为Boolean时,返回NaN
parseFloat(true); // NaN
parseFloat(false); // NaN
2.参数为String时,一个字符一个字符解析,直到解析完或遇到一个无效的浮点数字字符为止。
即:字符串中第一个小数点是有效的,第二个小数点是无效的。
注:parseFloat()无第二个参数,不能解析十六进制数。
// 既有数字,又有字符
parseFloat("123.456abc"); // 123.456
parseFloat("abc123.456"); // NaN// 小数
parseFloat(".456"); // 0.456
parseFloat("000012.34"); // 12.34 忽略前导0
parseFloat("123.456.789"); // 123.456 第二个小数点无效
parseFloat("1.23e5"); // 123000// 十六进制
parseFloat("0xAF"); // 0// 空字符
parseFloat(""); // NaN
四. 总结
- Number()能转换boolean值,null,只含整数或小数的字符串,空字符串,对象。
- parseInt()按字符解析,直到遇见第一个非数字字符为止。
- parseFloat()按字符解析,直到遇见一个无效的浮点数字字符为止。
JS字符串转换为数字,Number(),parseInt()和parseFloat()的区别相关推荐
- Node.js 字符串转换为数字型
字符串转化为数字 在Node.js源代码里,经常见到使用各种符号处理字符串为数字的方法. + * ~~ >> >>> + 将字符串转化为数字,可在前面加+号: var s ...
- JavaScript 将字符串转换为数字 – JS 字符串转 Int 示例
JavaScript 将字符串转换为数字 – JS 字符串转 Int 示例 "John Doe" -> String 'John Doe' -> String &quo ...
- js函数 Number()、parseInt()、parseFloat()的区别:
Number().parseInt().parseFloat()的区别: Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是 ...
- Number()、parseInt()和parseFloat()的区别
JS中Number().parseInt()和parseFloat()的区别 三者的作用: Number(): 可以用于任何数据类型转换成数值: parseInt(): 函数可解析一个字符串,并返回 ...
- Number()、parseInt() 和 parseFloat() 的区别
一:Number() 如果是Boolean值,true和false值将分别被转换为1和0. 如果是数字值,只是简单的传入和返回. 如果是null值,返回0. 如果是undefined,返回NaN. 如 ...
- 在 JavaScript 中将字符串转换为数字的 7 种方法
1. 使用 parseInt() parseInt()解析一个字符串并返回一个整数.允许空格.仅返回第一个数字. 这种方法虽然有一个限制.如果您解析十进制数,它将四舍五入到最接近的整数值,并将该值转换 ...
- 在javascript中将字符串转换为数字的6种方法
在javascript中,数字可以用两种不同的方式表示, 1.作为实际数字. 2. 作为字符串 . 很多时候,我们需要在javascript中将字符串转换为数字. 我们将看到6种不同的方法可以将字符串 ...
- TypeScript将字符串转换为数字
本文翻译自:TypeScript Converting a String to a number Anyone a suggestion on how to convert a string to a ...
- c++ascii码转换为数字_在C++中将字符串转换为数字
有许多情况需要将数字转换为字符串或将字符串转换为数字.本文中提到了一些实现此任务的方法. 将字符串转换为数字 方法1:使用stringstream类或sscanf() 方法2:使用stoi()或ato ...
最新文章
- Android API 中文 (51) —— ZoomButtonsController
- 使用np.load()加载数据 报错 Object arrays cannot be loaded when allow_pickle=False
- AndroidStudio自动补完包的快捷键
- [vue] vue组件之间的通信都有哪些?
- 关于python中带下划线的变量和函数 的意义,class类带一个下划线和带两个下划线的定义
- PostgreSQL 多重含义数组检索与条件过滤 (标签1:属性, 标签n:属性) - 包括UPSERT操作如何修改数组、追加数组元素
- Html 按钮button加超链接
- Qt可执行程序写入版本信息
- 如何迁移outlook邮件到另一个硬盘_如何注册Yahoo邮箱?
- Java虚拟机-垃圾回收器
- Python批量替换掉某些值为新的值
- Java中测试异常的多种方式
- php反射API 获取属性/注释/方法 执行方法 实例
- S/4 HANA中的数据库锁策略
- 《Lua游戏AI开发指南》一第2章 创建并移动智能体
- Mac读写ntfs磁盘工具:Paragon NTFS for Mac
- 常用统计预测方法介绍
- 2019北京中考英语口语计算机考试,2019北京中考英语听说考试体验系统发布,附考试流程和注意事项...
- 三星时差定位算法 matlab,三星时差定位,tri-satellites geo-location using TDOA,音标,读音,翻译,英文例句,英语词典...
- 51单片机c语言相位计,相位计.doc
热门文章
- SpringMvc-ResponseBodyAdvice接口与@ControllerAdvice注解
- css中aspect,css 媒体查询 aspect-ratio less 使用方法
- 谷歌chromeos_谷歌浏览器 79.0.3945.79 正式版
- mac11.3成功编译taichi笔记
- 【leetcode 简单】第十七题 x 的平方根
- ubuntu-ln命令
- 牛腩新闻发布系统——触发器使用
- 用ZedGraph作图表(一)
- Kubernetes 网络部分
- 句句真研—每日长难句打卡Day2