详解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读取ASP设定的COOKIE
Nov 24 Javascript
利用js读取动态网站从服务器端返回的数据
Feb 10 Javascript
js 数组去重的四种实用方法
Sep 09 Javascript
Javascript BOM学习小结(六)
Nov 26 Javascript
把json格式的字符串转换成javascript对象或数组的方法总结
Nov 03 Javascript
Javascrip实现文字跳动特效
Nov 27 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
Apr 11 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
Jan 04 Javascript
Angular Material Icon使用详解
Nov 07 Javascript
js使用Promise实现简单的Ajax缓存
Nov 14 Javascript
ionic4+angular7+cordova上传图片功能的实例代码
Jun 19 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
Aug 12 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(六)
2006/10/09 PHP
function.inc.php超越php
2006/12/09 PHP
使用phpQuery采集网页的方法
2013/11/13 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
PHP自定义函数格式化json数据示例
2016/09/14 PHP
又一个图片自动缩小的JS代码
2007/03/10 Javascript
javascript EXCEL 操作类代码
2009/07/30 Javascript
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
10个基于浏览器的JavaScript调试工具分享
2013/02/07 Javascript
jquery html动态生成select标签出问题的解决方法
2013/11/20 Javascript
JS实现闪动的title消息提醒效果
2014/06/20 Javascript
介绍JavaScript中Math.abs()方法的使用
2015/06/14 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
JavaScript组合模式学习要点
2016/08/26 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
Vue分页组件实例代码
2017/04/17 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
jquery获取transform里的值实现方法
2017/12/12 jQuery
基于vue实现web端超大数据量表格的卡顿解决
2019/04/02 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
2019/09/11 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
VueQuillEditor富文本上传图片(非base64)
2020/06/03 Javascript
React 条件渲染最佳实践小结(7种)
2020/09/27 Javascript
前端如何实现动画过渡效果
2021/02/05 Javascript
python抓取文件夹的所有文件
2018/02/27 Python
Python爬虫实例扒取2345天气预报
2018/03/04 Python
django中的HTML控件及参数传递方法
2018/03/20 Python
Python实现正整数分解质因数操作示例
2018/08/01 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
Python爬虫防封ip的一些技巧
2020/08/06 Python
Python接口自动化测试的实现
2020/08/28 Python
python读取excel数据并且画图的实现示例
2021/02/08 Python
工程管理造价应届生求职信
2013/11/13 职场文书
简历中个人求职的自我评价模板
2013/11/29 职场文书
公证委托书模板
2014/04/03 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书