详解js中Number()、parseInt()和parseFloat()的区别


Posted in Javascript onDecember 20, 2016

一:Number()

如果是Boolean值,true和false值将分别被转换为1和0。

如果是数字值,只是简单的传入和返回。

如果是null值,返回0。

如果是undefined,返回NaN。

如果是字符串:

  a.  如果字符串中只包含数字时,将其转换为十进制数值,忽略前导0

  b. 如果字符串中包含有效浮点格式,如“1.1”,将其转换为对应的浮点数字,忽略前导0

  c. 如果字符串中包含有效的十六进制格式,如“0xf”,将其转换为相同大小的十进制数值

  d. 如果字符串为空,将其转换为0

  e. 如果字符串中包含除上述格式之外的字符,则将其转换为NaN

如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后再依照前面的规则转换返回的字符串值。

例: 

 var num1 = Number("Hello world");

 //NaN
 var num2 = Number("");





//0
 var num3 = Number("0000011");


  //11

二:parseInt()

处理整数的时候parseInt()更常用。parseInt()函数在转换字符串时,会忽略字符串前面的空格,知道找到第一个非空格字符。

如果第一个字符不是数字或者负号,parseInt() 就会返回NaN,同样的,用parseInt() 转换空字符串也会返回NaN。

如果第一个字符是数字字符,parseInt() 会继续解析第二个字符,直到解析完所有后续字符串或者遇到了一个非数字字符。

parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。

基是由parseInt()方法的第二个参数指定的,所以要解析十六进制的值,当然,对二进制、八进制,甚至十进制(默认模式),都可以这样调用parseInt()方法。

例:

var num1 = parseInt("AF",16);

 

//175


var num2 = parseInt("AF");





//NaN


var num3 = parseInt("10",2);


  
 //2
(按照二进制解析)


var num4 = parseInt("sdasdad");



 //NaN

三:parseFloat()

 与parseInt() 函数类似,parseFloat() 也是从第一个字符(位置0)开始解析每一个字符。也是一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止。

 也就是说,字符串中第一个小数点是有效的,而第二个小数点就是无效的了,它后面的字符串将被忽略。

 parseFloat() 只解析十进制,因此它没有第二个参数指定基数的用法

 如果字符串中包含的是一个可解析为正数的数(没有小数点,或者小数点后都是零),parseFloat() 会返回整数。

例:

var num1 = parseFloat("123AF");

 

//123

var num2 = parseFloat("0xA");





//0

var num3 = parseFloat("22.5");


  
  //22.5

var num4 = parseFloat("22.3.56");



 //22.3

var num5 = parseFloat("0908.5");



  //908.5

parseInt() 和parseFloat() 的区别在于:

  • parseFloat() 所解析的字符串中第一个小数点是有效的,而parseInt() 遇到小数点会停止解析,因为小数点并不是有效的数字字符。
  • parseFloat() 始终会忽略前导的零,十六进制格式的字符串始终会被转换成0,而parseInt() 第二个参数可以设置基数,按照这个基数的进制来转换。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
jQuery 对象中的类数组操作
Apr 27 Javascript
基于JQuery.timer插件实现一个计时器
Apr 25 Javascript
jQuery 锚点跳转滚动条平滑滚动一句话代码
Apr 30 Javascript
javascript实现的图片切割多块效果实例
May 07 Javascript
浅析jquery与checkbox的checked属性的问题
Apr 27 Javascript
jQuery中使用animate自定义动画的方法
May 29 Javascript
JS 面向对象之继承---多种组合继承详解
Jul 10 Javascript
利用bootstrapValidator验证UEditor
Sep 14 Javascript
node.js中fs.stat与fs.fstat的区别详解
Jun 01 Javascript
jQuery pagination分页示例详解
Oct 23 jQuery
node(koa2) web应用模块介绍详解
Mar 29 Javascript
js实现随机div颜色位置 类似满天星效果
Oct 24 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
Dec 20 #Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
Dec 20 #Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
Dec 20 #Javascript
js多个物体运动功能实例分析
Dec 20 #Javascript
JS高级运动实例分析
Dec 20 #Javascript
CSS+jQuery实现简单的折叠菜单
Dec 20 #Javascript
jQuery常见的选择器及用法介绍
Dec 20 #Javascript
You might like
在php MYSQL中插入当前时间
2008/04/06 PHP
php 设计模式之 单例模式
2008/12/19 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
2018/04/21 PHP
分享8个Laravel模型时间戳使用技巧小结
2020/02/12 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
提高 DHTML 页面性能
2006/12/25 Javascript
原型方法的不同写法居然会影响调试的解决方法
2007/03/08 Javascript
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
2009/10/26 Javascript
JQuery下的Live方法和$.browser方法使用代码
2010/06/02 Javascript
js动态修改input输入框的type属性(实现方法解析)
2013/11/13 Javascript
浏览器窗口加载和大小改变事件示例
2014/02/27 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
2015/09/28 Javascript
完美解决iview 的select下拉框选项错位的问题
2018/03/02 Javascript
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
2018/04/27 Javascript
vue 修改 data 数据问题并实时显示的方法
2018/08/27 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
vue选项卡切换登录方式小案例
2019/09/27 Javascript
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
举例讲解Python面向对象编程中类的继承
2016/06/17 Python
Python基于identicon库创建类似Github上用的头像功能
2017/09/25 Python
python中requests库session对象的妙用详解
2017/10/30 Python
Python实现网站表单提交和模板
2019/01/15 Python
python 图像的离散傅立叶变换实例
2020/01/02 Python
Python实现括号匹配方法详解
2020/02/10 Python
利用Python pandas对Excel进行合并的方法示例
2020/11/04 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
2021/01/06 Python
英国打印机墨水和碳粉商店:Printerinks
2017/06/30 全球购物
说明书范文
2014/05/07 职场文书
党在我心中演讲稿
2014/09/02 职场文书
2014年幼儿园安全工作总结
2014/11/10 职场文书
给老婆的检讨书
2015/01/27 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
python编程项目中线上问题排查与解决
2021/11/01 Python
Python编程中内置的NotImplemented类型的用法
2022/03/23 Python