在javascript 我经常用到,parseInt、parseFloat、Number、isNaN,但是转规则不一,常常搞不清楚区别。记忆起来非常吃力。
今天我们来扯一扯他们的区别和用法,和记忆技巧
 
首先,javacript的数据类型number 包含 整数 小数 0 NaN
判断一个值是不是数字可以使用 typeof
<script>
console.log(typeof 100);//"number"
console.log(typeof 199.99);// "number"
console.log(typeof NaN);// "number"
console.log(typeof 1 + 1); // "number"
console.log(typeof 1 + undefined); // "number"
console.log(typeof 1 + null); // "number"
console.log(typeof 1 + ""); // "string"
</script>
1、Number : 把其他数据类型的值强制转换成number类型;返回number

//通过下面的转换我们来寻找规则
//string 字符串
console.log(Number("100")); //
console.log(Number("100px")); //NaN
console.log(Number("p100")); //NaN
console.log(Number("p100p")); //NaN
console.log(Number("")); //0
console.log(Number("0")); //
console.log(Number(" ")); //
//总结只要是纯number字符或者空字符串(""或" ")会转成 0
//boolean 布尔
console.log(Number(true)); //
console.log(Number(false)); //
//null undefined
console.log(Number(null)); //0
console.log(Number(undefined)); //NaN
// 对象
console.log(Number([])); //0 先调用[].toString() 方法得出 "" "" 转换会为0
console.log(Number([1,3,56])); //NaN 先调用[].toString() 方法得出"1,3,56"
//NaN 先调用[].toString() 方法得出"[object Object]"
console.log(Number({}));
console.log(Number({name:"vilin", age:18})); //NaN
2、isNaN : 用来判断是否是一个非有效数字的方法;如果是有效数字返回false,不是返回true; 返回boolean值
      规则:执行前,先把要判断的值 执行Number() 所有规则参照Number 转换规则

//string 字符串
console.log(isNaN("100")); //false
console.log(isNaN("100px")); //true
console.log(isNaN("p100")); //true
console.log(isNaN("px100p")); //true
console.log(isNaN("")); //false
console.log(isNaN("0")); //false
console.log(isNaN(" ")); //false
//boolean 布尔型
console.log(isNaN(true)); //false
console.log(isNaN(false)); //false
//null undefined
console.log(isNaN(null)); //false
console.log(isNaN(undefined)); //true
//对象
console.log(isNaN([])); //false
console.log(isNaN([2,3])); //true
console.log(isNaN({})); //true
console.log(isNaN({name:"vilin",age:19})); //true
3、parseInt: 把字符串转成整数数字 ;返回number
   分析: parse: 解析分析 Int:integer(整数)
   规则:从左到右依次识别,直到遇到一个非有效数字为止
   总结:处理字符串转换、从左到右非有效数字停止 、只转换整数
console.log(parseInt("100")); //
console.log(parseInt("100px")); //
console.log(parseInt("156.444px")); //
console.log(parseInt("p100")); //NaN
console.log(parseInt("p100p")); //NaN
console.log(parseInt("")); //NaN
console.log(parseInt("0")); //
console.log(parseInt(" ")); //NaN
4、parseFloat :把字符串转换成number,支持小数 返回number
   分析: parse: 解析分析  Float: 编程界 代表浮点数 即是小数
   规则:从左到右依次识别,直到遇到一个非有效数字为止
   总结:处理字符串转换、从左到右非有效数字停止、支持小数
console.log(parseFloat("100")); //
console.log(parseFloat("100px")); //
console.log(parseFloat("156.444px")); //156.444
console.log(parseFloat("p100")); //NaN
console.log(parseFloat("p100p")); //NaN
console.log(parseFloat("")); //NaN
console.log(parseFloat("0")); //
console.log(parseFloat(" ")); //NaN
5、toFixed: 保留小数点位数,并进行四舍五入;返回字符串
用法:

var num = 1300;
var num1 = 1456.897;
console.log(num.toFixed(2)); //1300.00
console.log(100.toFixed(1)) //报错 无法识别该点的是指的小数点还是...
console.log(num1.toFixed(2)); //1456.90

parseInt parseFloat isNaN Number 区别和具体的转换规则及用法的更多相关文章

  1. Number(),parseInt(),parseFloat(),Math.round(),Math.floor(),Math.ceil()对比横评

    首先,这些处理方法可分为三类. 1,只用来处理数字取整问题的:Math.round(),Math.floor(),Math.ceil(): 2,专门用于把字符串转化成数值:parseInt(),par ...

  2. isNaN与parseInt/parseFloat

    isNaN 返回一个 Boolean 值,指明提供的值是否是保留值 NaN (不是数字). NaN 即 Not a Number isNaN(numValue) 必选项 numvalue 参数为要检查 ...

  3. parseint和parsefloat总结number。隐形转换

    parseint:会认识一些字符+.-.空格,其他的就会截止譬如23hudhchauch结果为:23,对于boollen类型不能转换为1或是0. number:是对整体的转换.对true的转换为1. ...

  4. Number,parseInt,parseFloat函数

    Number,parseInt,parseFloat函数 console.group('Number'); console.log(Number( console.log(Number( consol ...

  5. parseFloat 和 Number isNaN 转换

    parseFloat(true) // NaN Number( parseFloat(null) // NaN Number( parseFloat('') // NaN Number('') par ...

  6. js字符转换成整型 parseInt()函数规程Number()函数

    今天在做一个js加法的时候,忘记将字符转换成整型,导致将加号认为是连接符,  在运算前要先对字符井行类型转换,使用parseInt()函数   使用Number()将字符转换成int型效果更好

  7. js中的NaN,isNaN与Number.isNaN的区别,如何判断一个值严格等于NaN

    在JavaScript的数字类型Number中,我们最常使用的大概是整数类型与浮点数类型,但除这两者外,还有个特殊的存在NaN,为什么NaN!==NaN?我们如何判断一个值是否等于NaN呢?这篇文章好 ...

  8. js parseInt();parseFloat;Number()

    1:  parseInt( numString [, radix ] ) [测试浏览器:chromium && firefox] ①parseInt()函数用于将字符串转换为(十进制) ...

  9. parseInt()、parseFloat()与Number()的比较

    我有一个同学最近在自学JavaScript,偶尔遇到问题了会让我帮忙解决,虽然我也是一个JavaScript菜鸟,但是我还是很乐意帮忙,这样不仅可以帮到别人,也可以让自己在解决问题的过程中学到更多知识 ...

随机推荐

  1. 使用power designer,PL/SQL,cmd建立oracle数据库

    这一系列操作需要powerDesigner,PL/SQL工具 1.首先使用powerDesigner建立概念模型 2.概念模型界面例子 3.其中建立概念模型操作图标详解 4.建立物理模型 5.生成数据 ...

  2. 1.3.1 Lock接口及其实现

    1.锁的本质 2.Lock接口使用ReentrenLock 3.读写锁使用 4.读写锁实现 Lock接口方法 有点意思的是lockInterruptibly(), 只要没有获取到锁就会一直等待,直到某 ...

  3. 什么是弹性公网IP?

    弹性公网IP(Elastic IP Address,简称EIP),是可以独立购买和持有的公网IP地址资源.目前,EIP可绑定到专有网络类型的ECS实例.专有网络类型的私网SLB实例.专有网络类型的辅助 ...

  4. idea npm vue java开发工具安装 环境配置

    感谢此链接内容作者,从前往后流程较完整详细,助我成功配置好(不知道在这之前做的一些尝试有没有影响) https://blog.csdn.net/qq_42564846/article/details/ ...

  5. ubuntu下安装navicat

    1.去官网下载 https://www.navicat.com/en/download/navicat-premium 2.命令行输入(解压命令) tar -zxvf xxxxx.tar.gz 3.移 ...

  6. Codeforces Round #590 (Div. 3)补题

    要想上2000分,先刷几百道2000+的题再说 ---某神 题目 E F 赛时是否尝试 × × tag math bitmask 难度 2000 2400 状态 ∅ √ 解 E 待定 F 传送门 第一 ...

  7. fiddler笔记:统计选项卡(Statistics)

    Request Count 选中的Session数. Bytes sent Http请求头和请求体中向外发送的字节总数. Bytes received HTTP请求头和请求体中接收到的所有字节数. R ...

  8. 顶级Python库

    绝不能错过的24个顶级Python库 Python有以下三个特点: · 易用性和灵活性 · 全行业高接受度:Python无疑是业界最流行的数据科学语言 · 用于数据科学的Python库的数量优势 事实 ...

  9. [第二季ZYNQ] [南京米联]ZYNQ第二季更新完毕课程共计16节课

    ZYNQ第二季更新完毕课程共计16节课全部免费 [第二季ZYNQ]                                                                    ...

  10. 深度学习之卷积神经网络CNN及tensorflow代码实现示例

    深度学习之卷积神经网络CNN及tensorflow代码实现示例 2017年05月01日 13:28:21 cxmscb 阅读数 151413更多 分类专栏: 机器学习 深度学习 机器学习   版权声明 ...