Number(),parseInt()和parseFloat
一、Number()
1.如果是传进去数字值,只进行传入和传出,前置为 0x 的数字 和 前置 为0且不包含数字8,9的数字 ,会被转为十进制,对于其他的数字来说通常没有变化。
2.如果传进去Boolean,true和false会被转成1和0。
3.传进去null或者undefined,会被转成0和NaN
4.对于传进去字符串:
a.如果字符串只包含数字,忽略前置的0,将其转换为 十进制 。
b.带小数点的字符串,忽略前置的0,将其转换为对相应的 浮点数。
c.十六进制的话,也会将其转换为十进制。如0xfff 会被转成4095.
d.字符串如果是空的,或者只含有空格的字符串,会被转成0.
e.如果字符串中含有非数字的字符,转成NaN。如 “10*10”算式也会转成NaN
5.传进去的函数,数组,集合等对象,会先按照之前的规则转换返回值,如果是NaN,则再调用对象的toString,然后在依照前面的规则转换返回的字符串。
1 //整数字符串或者带小数点字符串
2 document.write(Number("8944") + "<br>"); //8944
3 document.write(Number("89.44") + "<br>");//89.44
4 document.write(Number("10*10") + "<br>");//NaN
5 document.write(Number(0666) + "<br>");//NaN
6 //带字符的数字
7 document.write(Number("8944hh") + "<br>");//NaN
8 document.write(Number("hh8947") + "<br>");//NaN
9 //为空或者undefined
10 document.write(Number() + "<br>");//0
11 document.write(Number(undefined) + "<br>");//NaN
12 //前置0x
13 document.write(Number("0xfff") + "<br>");//4095
14 document.write(Number("06666") + "<br>");//6666
15 //前置一个或多个0
16 document.write(Number("08944") + "<br>");//8944
17 document.write(Number("00010101") + "<br>");//默认转成十进制
18 //布尔值
19 document.write(Number(true) + "<br>");
20 document.write(Number(false) + "<br>");
21 //对象或者函数
22 function num(){return '123456'};
23 document.write(Number(function(){}) + "<br>");//NaN
24 document.write(Number(num()) + "<br>");//123456
25 document.write(Number([1,2,3,4]) + "<br>");//NaN
26 document.write(Number({a:1,b:2,c:3}) + "<br>");//NaN
二、parseInt()
1.parseInt(numstring, [radix])函数用于把字符串转换为整数。参数radix可选,如果设置2-36之间的整数,则表示numstring的进制,转成对应的十进制数字。但是numstring的是否符合设定的进制规则,需要注意。
2.如果没有设置radix参数,则前置0x,0的数字会被当成十六进制和八进制。
3.parseInt 是可以解析字符串中带字符的数字的,默认 parseInt() 方法会从字符串的首字符开始分析,如果是有效数字,就继续分析下一个位置的数字,知道发现非有效数字为止(字母、小数点、其他符号等)。
4.parseInt 在转换浮点数的时候不是进行四舍五入,而是直接取小数点前面的整数。
5.parseInt 对数值表达式的转化,是先计算整数值。
6.对布尔值、空值、undefined等,parseInt返回值都是NaN。
7.传进去一个数组的时候,会返回数组中第一个的值,如果是NaN,然后在以字符串的形式进行转换。
//整数字符串或者带小数点字符串
document.write(parseInt("8944") + "<br>"); //
document.write(parseInt("89.44") + "<br>");//
document.write(parseInt("10*10") + "<br>");//
document.write(parseInt(0666) + "<br>");//
//带字符的数字
document.write(parseInt("8944hh") + "<br>");//
document.write(parseInt("hh8947") + "<br>");//NaN
//为空或者undefined、布尔值
document.write(parseInt(true) + "<br>");
document.write(parseInt(false) + "<br>");
document.write(parseInt() + "<br>");//NaN
document.write(parseInt(undefined) + "<br>");//NaN
//对象或者函数
function num(){return '123456'};
document.write(parseInt(function(){}) + "<br>");//NaN
document.write(parseInt(num()) + "<br>");//
document.write(parseInt(["11h",2,3,4]) + "<br>");//
document.write(parseInt({a:1,b:2,c:3}) + "<br>");//NaN
三、parseFloat
1.parseFloat(numstring)和parseInt类型,只是转成浮点数。
2.需要注意的是,在进行转换的的时候,只会解析遇到的第一个有效的小数点,后边遇到的小数点和字符会被当成无效字符,停止解析
3.在进行字符串解析的时候,parseFloat始终会忽略前置的0,如 "0xfff", 会被解析成0。
document.write(parseFloat("8944") + "<br>"); //
document.write(parseFloat("89.44") + "<br>");//89.44
document.write(parseFloat("89.44.44") + "<br>");//89.44
document.write(parseFloat(0666) + "<br>");//
document.write(parseFloat(0x10) + "<br>");//
document.write(parseFloat("0xfff") + "<br>");//0
| Number() | parseInt() | parseFloat |
| Number(false),结果为0 | parseInt(false),结果为NaN | parseFloat(false),结果为NaN |
| Number(true),结果为1 | parseInt(true),结果为NaN | parseFloat(true),结果为NaN |
| Number(null),结果为0 | parseInt(null),结果为NaN | parseFloat(null),结果为NaN |
| Number("1.1.1"),结果为NaN | parseInt("1.1.1"),结果为NaN | parseFloat("1.1.1"),结果为NaN |
| Number("123HELLO"),结果为NaN | parseInt("123HELLO"),结果为123 | parseFloat("123HELLO"),结果为123 |
Number(),parseInt()和parseFloat的更多相关文章
- JavaScript中Number(),parseInt()和parseFloat()区别
parseInt() 函数可解析一个字符串,并返回一个整数; parseFloat() 函数可解析一个字符串,并返回一个浮点数, 以上都是截取转换,具体代码如下: alert(parseInt(&qu ...
- JavaScript 中 Number()、parseInt()、parseFloat()的区别
Number(): 概述:Number 对象由 Number() 构造器创建,是经过封装的能让你处理数字值的对象.在非构造器上下文中 (如:没有 new 操作符),Number 能被用来执行类型转换. ...
- Number()、parseInt() 和 parseFloat() 的区别
一:Number() 如果是Boolean值,true和false值将分别被转换为1和0. 如果是数字值,只是简单的传入和返回. 如果是null值,返回0. 如果是undefined,返回NaN. 如 ...
- parseint和parsefloat总结number。隐形转换
parseint:会认识一些字符+.-.空格,其他的就会截止譬如23hudhchauch结果为:23,对于boollen类型不能转换为1或是0. number:是对整体的转换.对true的转换为1. ...
- Number,parseInt,parseFloat函数
Number,parseInt,parseFloat函数 console.group('Number'); console.log(Number( console.log(Number( consol ...
- Number()、parseInt()、parseFloat()的区别
最近在一个项目中遇到:需要在前台页面用javascript去处理很数值的计算. 各种用法都有,为了统一且保证处理方式正确,特地总结了一下相关的数值转换的用法: 作用: Number():可以用于任何数 ...
- Number()、parseInt()和parseFloat()的区别
JS中Number().parseInt()和parseFloat()的区别 三者的作用: Number(): 可以用于任何数据类型转换成数值: parseInt(): 函数可解析一个字符串,并返回一 ...
- js中Number()、parseInt()和parseFloat()的区别
一:Number() 如果是Boolean值,true和false值将分别被转换为1和0. 如果是数字值,只是简单的传入和返回. 如果是null值,返回0. 如果是undefined,返回NaN. 如 ...
- 详解JS中Number()、parseInt()和parseFloat()的区别
三者的作用: Number(): 可以用于任何数据类型转换成数值: parseInt().parseFloat(): 专门用于把字符串转换成数值: 一.Number( ): (1)如果是Boolean ...
随机推荐
- Pr剪辑
目录 Pr剪辑教程 入门基础 创建序列类别 处理非正常序列 导出文件 导出设置 导入各类别素材 简单使用: 剪辑素材常用方法 剃刀工具 选择工具 波纹编辑工具 打入点和出点 剪辑速度 整个素材视频速度 ...
- Centos7 如何通过win10 的远程桌面连接进行远程访问
首先,如果安装测centos7是已经安装了GNOME 或者 KDE 桌面, 则只需要再安装xrdp就可以了. 直接通过yum install xrdp 是不行的,因为xrdp 不在默认源中 先配置 ...
- "点"醒自己
回顾: 过去的经历 从18年开始在某机构进行了测试培训,9月正式加入测试小白大军,中间也经历了半年的空窗期,入职2个月应能力不够被公司辞退,后通过培训班的朋友内推到一家软件外包公司,工作到现在. 思考 ...
- 比原Bapp红包应用
喜迎国庆期间,比原链在自己的移动端钱包Bycoin(下载地址)和google插件钱byone中推出了红包应用,在国庆期间深受大家好评. 那我们今天就来大概介绍一下比原红包,以及基于比原链开发dapp应 ...
- 2020-07-16:如何获得一个链表的倒数第n个元素?
福哥答案2020-07-16: 1.快慢指针.快指针先走n步,然后快慢指针同时走,直到快指针走到尾.2.两次遍历.第一次遍历获取链表长度,然后计算出序号,然后遍历获取序号下的元素.3.数组保存.遍历一 ...
- 编译原理——求解First,Follow,Firstvt和Lastvt集合
转载地址 http://dongtq2010.blog.163.com/blog/static/1750224812011520113332714/ 学编译原理的时候,印象最深的莫过于这四个集合了,而 ...
- jquery—实现能滚动的选项卡效果
选项卡在网页中很常见,可以说是必备的一个元素了,网上其实也有很多案例讲解选项卡的做法,写这篇文章,就是记录下自己的写一个的实例效果图: html: css样式: 主要是滚动条的的样式设置width:1 ...
- Linux下安装pgadmin,并外部访问
环境: Centos 7 .已经安装的postgresql11,具体安装可以查看https://www.cnblogs.com/whitebai/p/12122240.html 1.下载阿里的 rep ...
- 攻防世界-web(进阶)-NaNNaNNaNNaN-Batman
用winhex打开,发现是一个javascript代码.将文件重命名为html文件,用浏览器打开. 打开是一个输入框,输入任何东西都梅反应,尝试弹框输入也无果,继续查看代码. 查看代码,可以看到最开始 ...
- JS的数据属性和访问器属性
ECMA-262第5版在定义只有内部才用的特性(attribute)时,描述了属性(property)的各种特征.ECMA-262定义这些特性是为了实现javascript引擎用的,因此在javasc ...