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 ...
随机推荐
- map,reduce和filter函数
numArray = [1, 2, 3, 4, 5] def ercifang(x): return x ** 2 def map_test(func, numArray): li = [] for ...
- tree命令编译使用
有天在linux中使用tree命令时候显示--未找到命令 记下解决过程: wget ftp://mama.indstate.edu/linux/tree/tree-1.6.0.tgz tar xzv ...
- SpringMvc接收multipart/form-data 传输的数据 及 PostMan各类数据类型的区别
前段时间遇到一个问题,在spring mvc 服务端接收post请求时,通过html 表单提交的时候,服务端能够接收到参数的值.但是使用httpclient4.3构造post请求,却无法接收到参数的值 ...
- linux tcpdump抓包Post请求
tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)' -w f ...
- Solon 最简单demo---Hello World
Solon 的项目地址: https://gitee.com/noear/solon 里面杂七杂八的东西很多...今天的目标是整一个最最简单,最最小巧的 Hello world (一)用 Intell ...
- 关于GPU你必须知道的基本知识
图形处理单元(或简称GPU)会负责处理从PC内部传送到所连接显示器的所有内容,无论你在玩游戏.编辑视频或只是盯着桌面的壁纸,所有显示器中显示的图像都是由GPU进行渲染的. 对普通用户来说,实际上不需要 ...
- 盘点 35 个 Apache 顶级项目,我拜服了…
Apache 软件基金会 Apache 软件基金会,全称:Apache Software Foundation,简称:ASF,成立于 1999 年 7 月,是目前世界上最大的最受欢迎的开源软件基金会, ...
- 手动向Maven本地仓库添加ORACLE ojdbc6jar包
第一步: 把你的oracle中的ojdbc6.jar复制放到D盘首目录 这是我的D:\oracle\product\11.2.0\dbhome_1\jdbc\ D:ojdbc6.jar 但是Maven ...
- 谈谈javascript的基本规范~~~~
1.不要在同一行声明多个变量. 2.请使用===或==来比较true或false或者数值 3.使用对象字面量代替new Array这种形式 4.不要使用全局函数 5.switch语句必须带有defau ...
- Android SDK 环境的搭建 --图形界面模式和命令行模式
Android 开发首先就是要搭建开发环境,没有用过Eclipse(ADT)开发过,直接用的Android Studio,其中最主要的就是 Android SDK的安装和搭建,所以这里只是总结下And ...