详解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 void(0)的妙用
Oct 21 Javascript
让FireFox支持innerText的实现代码
Dec 01 Javascript
菜鸟javascript基础资料整理2
Dec 06 Javascript
Javascript继承(上)——对象构建介绍
Nov 08 Javascript
js实现从数组里随机获取元素
Jan 12 Javascript
jQuery插件制作之全局函数用法实例
Jun 01 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
Jun 05 Javascript
深入浅析JavaScript中的3DES
Aug 24 Javascript
JS实现全屏的四种写法
Dec 30 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
Mar 04 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
Jan 09 Javascript
微信小程序实现点击图片旋转180度并且弹出下拉列表
Nov 27 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校验表单检测字段是否为空的方法
2015/03/20 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
2018/09/18 PHP
PHP实现字符串的全排列详解
2019/04/24 PHP
php输出形式实例整理
2020/05/05 PHP
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
2009/12/28 Javascript
拖动布局之保存布局页面cookies篇
2010/10/29 Javascript
Javascript Request获取请求参数如何实现
2012/11/28 Javascript
jquery右下角弹出提示框示例代码
2013/10/08 Javascript
JS连连看源码完美注释版(推荐)
2013/12/09 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
jQuery圆形统计图开发实例
2015/01/04 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
JS实现动态生成表格并提交表格数据向后端
2020/11/25 Javascript
xmlplus组件设计系列之按钮(2)
2017/04/26 Javascript
详解webpack + react + react-router 如何实现懒加载
2017/11/20 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
python实现代码行数统计示例分享
2014/02/10 Python
Python简单处理坐标排序问题示例
2019/07/11 Python
Python实现AI换脸功能
2020/04/10 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
完美解决ARIMA模型中plot_acf画不出图的问题
2020/06/04 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
新西兰最大的在线设计师眼镜店:SmartBuyGlasses新西兰
2017/10/20 全球购物
数控技术专业推荐信
2013/11/01 职场文书
酒店经理职责
2014/01/30 职场文书
学生会竞聘书范文
2014/03/31 职场文书
小学生暑假家长评语
2014/04/17 职场文书
物流管理专业求职信
2014/05/29 职场文书
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
2020年基层司法所建设情况调研报告
2019/11/30 职场文书
redis 存储对象的方法对比分析
2021/08/02 Redis