详解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 相关文章推荐
JS逆序遍历实现代码
Dec 02 Javascript
JavaScript中reduce()方法的使用详解
Jun 09 Javascript
使用bootstrapValidator插件进行动态添加表单元素并校验
Sep 28 Javascript
JQuery中解决重复动画的方法
Oct 17 Javascript
Bootstrap表单控件学习使用
Mar 07 Javascript
jQuery Ajax前后端使用JSON进行交互示例
Mar 17 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
May 03 Javascript
JS点击动态添加标签、删除指定标签的代码
Apr 18 Javascript
JS实现全屏预览F11功能的示例代码
Jul 23 Javascript
详解vue-cli下ESlint 配置说明
Sep 03 Javascript
Vue 设置axios请求格式为form-data的操作步骤
Oct 29 Javascript
Vue使用Element实现增删改查+打包的步骤
Nov 25 Vue.js
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 GD绘制24小时柱状图
2008/06/28 PHP
PHP 分页类(模仿google)-面试题目解答
2009/09/13 PHP
PHP源码之explode使用说明
2011/08/05 PHP
浅析php-fpm静态和动态执行方式的比较
2016/11/09 PHP
PHP使用redis消息队列发布微博的方法示例
2017/06/22 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
javascript 面向对象编程  function是方法(函数)
2009/09/17 Javascript
script不刷新页面的联动前后代码
2013/09/18 Javascript
JS分页效果示例
2013/10/11 Javascript
NodeJS url验证(url-valid)的使用方法
2013/11/18 NodeJs
JS+CSS实现的经典tab选项卡效果代码
2015/09/16 Javascript
全屏滚动插件fullPage.js使用实例解析
2016/10/21 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
webpack2.0配置postcss-loader的方法
2017/08/17 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
了解JavaScript中let语句
2019/05/30 Javascript
深入理解python中的atexit模块
2017/03/07 Python
Python 稀疏矩阵-sparse 存储和转换
2017/05/27 Python
python用pickle模块实现“增删改查”的简易功能
2017/06/07 Python
Python Flask-web表单使用详解
2017/11/18 Python
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
Python函数生成器原理及使用详解
2020/03/12 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
Python 实现自动登录+点击+滑动验证功能
2020/06/10 Python
Selenium alert 弹窗处理的示例代码
2020/08/06 Python
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
详解利用css3的var()实现运行时改变scss的变量值
2021/03/02 HTML / CSS
HTML5中的Article和Section元素认识及使用
2013/03/22 HTML / CSS
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
股东协议书
2014/04/14 职场文书
竞选生活委员演讲稿
2014/04/28 职场文书
2014派出所所长群众路线对照检查材料思想汇报
2014/09/18 职场文书
2015年派出所工作总结
2015/04/24 职场文书
运动会通讯稿50字
2015/07/20 职场文书
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python