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 ...
随机推荐
- CF 题目选做
写省选的题目对noip没什么大用 关键是 细节题或者是思考题比较重要 练思维自然是CF比较好了 把我见到的比较好的CF题放上来刷一刷. LINK:Complete the projects 就是说一个 ...
- Python的基本运用(一)
1.a**b 表示a的b次方. 2.def something(a,b): 定义函数,注意 python的缩进 . 3.print (a)与print a 的区别,python3中不支持print ...
- 实验07——java输出数字的因数
package cn.tedu.demo; import java.util.Scanner; /** * @author 赵瑞鑫 E-mail:1922250303@qq.com * @versio ...
- ACL2020 Contextual Embeddings When Are They Worth It 精读
上下文嵌入(Bert词向量): 什么时候值得用? ACL 2018 预训练词向量 (上下文嵌入Bert,上下文无关嵌入Glove, 随机)详细分析文章 1 背景 图1 Bert 优点 效果显著 缺点 ...
- 双下划线开头的attr方法
# class Foo: # x=1 # def __init__(self,y): # self.y=y # # def __getattr__(self, item): # print('执行__ ...
- 【可视化-2】将图像当作DSM进行三维显示
上一篇文章中,已经跳出颜色或者亮度的局限,将图像视作一般化的栅格数据,并提供了四种利用颜色和亮度来直观表示栅格间取值差异的可视化方法. 栅格数据的四种可视化方式 这一回,我们又要从一般化走向特殊化.栅 ...
- python6.2类的封装
class Card(object): def __init__(self,num,pwd,ban): self.num=num#卡号 self.pwd=pwd#密码 self.__ban=ban#余 ...
- XSS 渗透思路笔记
了解XSS首先要了解HTML里面的元素:共有5种元素:空元素.原始文本元素. RCDATA元素.外来元素以及常规元素. 空元素area.base.br.col. command. embed.hr.i ...
- 【小白学AI】XGBoost 推导详解与牛顿法
文章转自公众号[机器学习炼丹术],关注回复"炼丹"即可获得海量免费学习资料哦! 目录 1 作者前言 2 树模型概述 3 XGB vs GBDT 3.1 区别1:自带正则项 3.2 ...
- 链表(python)
一.链表和数组 在编写代码中,我们储存的数据是存储于内存当中,内存就像一块块并列排序的小方盒,每个小方盒都有自己地址,我们储存的数据就在这样一个个小方盒当中. 这些数据存放的结构有两种基本方式,数组和 ...