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

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

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

  1. var num = 1300;
  2. var num1 = 1456.897;
  3. console.log(num.toFixed(2)); //1300.00
  4. console.log(100.toFixed(1)) //报错 无法识别该点的是指的小数点还是...
  5. 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. 导出远程oracle数据库到本地

    1.以管理员身份运行 Net Manager 以管理员身份运行cmd

  2. DP单调队列--斜率优化P3195

    题意:https://www.luogu.com.cn/problem/P3195 思路:https://www.luogu.com.cn/problemnew/solution/P3195 #def ...

  3. 码云以及Git的使用

    码云以及Git的使用 码云就是一个远程管理的仓库,Git是用来上传和下载数据的工具. 首先访问网站 https://gitee.com/ 进行注册 注册完成后,进入如下页面 点击新建仓库 设置自己的仓 ...

  4. pycharm 关联 maya

    设置pycharm代码自动补全 + pycharm关联maya 一.pycharm 设置 python环境,设置代码自动补全 1.devkit 选择对应版本进行下载https://www.autode ...

  5. 【转】STM32的FSMC详解

    STM32的FSMC真是一个万能的总线控制器,不仅可以控制SRAM,NOR FLASH,NAND FLASH,PC Card,还能控制LCD,TFT. 一般越是复杂的东西,理解起来就很困难,但是使用上 ...

  6. MyBatis 示例-主键回填

    测试类:com.yjw.demo.PrimaryKeyTest 自增长列 数据库表的主键为自增长列,在写业务代码的时候,经常需要在表中新增一条数据后,能获得这条数据的主键 ID,MyBatis 提供了 ...

  7. vue学习【一、开发环境搭建】

    一.安装node.js https://nodejs.org/en/ 建议安装LTS版本 安装完毕之后cmd命令查看node版本,如果不识别,记住设置环境变量 显示上面信息则安装成功 二.设置node ...

  8. 07 Redis存储Session

    django-redis-sessions 官方文档:https://pypi.org/project/django-redis-sessions/ dango-redis 官方文档:http://n ...

  9. js-回文数

    回文数 设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数. //回文数 let readline = require("readline-sync&quo ...

  10. js 中, set 与 数组 相互转换

    主要用 Array.from 方法 1.array --> set (数组转set) let array = [1, 2, 3, 4]; let set = new Set(array); 2. ...