详解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 相关文章推荐
javascript 表单规则集合对象
Jul 21 Javascript
动感效果的TAB选项卡jquery 插件
Jul 09 Javascript
jQuery使用之处理页面元素用法实例
Jan 19 Javascript
AngularJS入门教程之双向绑定详解
Aug 18 Javascript
vue.js表格分页示例
Oct 18 Javascript
jquery实现图片跟随鼠标的实例
Oct 17 jQuery
javascript字体颜色控件的开发 JS实现字体控制
Nov 27 Javascript
ng-events类似ionic中Events的angular全局事件
Sep 05 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
Nov 02 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
Nov 06 Javascript
localstorage实现带过期时间的缓存功能
Jun 28 Javascript
RxJS在TypeScript中的简单使用详解
Apr 13 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
递归列出所有文件和目录
2006/10/09 PHP
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
PHP中异常处理的一些方法整理
2015/07/03 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
2009/04/01 Javascript
Javascript 函数中的参数使用分析
2010/03/27 Javascript
javascript下string.format函数补充
2010/08/24 Javascript
js用Date对象处理时间实现思路及代码
2013/01/31 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
js判断鼠标左、中、右键哪个被点击的方法
2015/01/27 Javascript
javascript中this指向详解
2016/04/23 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
AngularJS基础 ng-include 指令简单示例
2016/08/01 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
2017/03/13 Javascript
vue-router 路由基础的详解
2017/10/17 Javascript
JS遍历JSON数组及获取JSON数组长度操作示例【测试可用】
2018/12/12 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
Python向MySQL批量插数据的实例讲解
2018/03/31 Python
tensorflow实现简单的卷积神经网络
2018/05/24 Python
django解决跨域请求的问题
2018/11/11 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
python assert的用处示例详解
2019/04/01 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
2019/08/30 Python
Python读取csv文件实例解析
2019/12/30 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
儿科主治医生个人求职信
2013/09/23 职场文书
项目管理计划书
2014/01/09 职场文书
采购类个人求职的自我评价
2014/02/18 职场文书
股份合作协议书范本
2014/04/14 职场文书
中学优秀班主任事迹材料
2014/05/01 职场文书
党员先进事迹材料
2014/12/19 职场文书
入党团支部推荐意见
2015/06/02 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
Python下opencv使用hough变换检测直线与圆
2021/06/18 Python
css3带你实现3D转换效果
2022/02/24 HTML / CSS
Python简易开发之制作计算器
2022/04/28 Python