js中有3个函数可以把非数值转换为数值:Number()、parseInt()、parseFloat()。其中Number()可以用于任何数据类型。parseInt()及parseFloat()用于将字符串转化为数值。

  一、Number()转化规则:

    1.如果是布尔值,ture和false分别转化为1和0;

    2.如果是数字,则只是简单的传入和返回;

    3.如果是null,返回0;

    4.如果是字符串,则情况比较多:

      (1)字符串是纯数字,如“123”,返回123;若是是“012”,则返回12;

      (2)字符串是浮点格式,如“2.1”,返回2.1;

      (3)字符串是十六进制格式,如“0xf”,返回转化后的十进制整数值;

      (4)字符串是空字符串,则转化为0;

      (5)字符串是以上之外的格式,返回NaN。

    5.如果是对象,则调用对象的valueOf()方法,然后依照钱前面的规则进行转换返回的值。如果装换的结果是NaN,则调用对象的toString()方法,然后再次按照前面的规则转换返回的字符串值。

  Number()函数比较复杂且不够合理,在处理整数的时候常用的是parseInt()函数。

  二、parseInt()函数转换空字符串会返回NaN;如果第一个字符是数字字符,会继续解析第二个字符,知道解析完所有后续字符或者遇到了一个非数字字符。例如:“123blue”,将转换为123;如果是“22.3”转换为22,因为小数点不是有效的数字符号。parseInt()还能识别各种整数格式(十进制、八进制、十六进制)。也就是说,如果字符以“0x”开头且后跟数字字符,则会被其当做十六进制整数;如果字符以“0”开头且后跟数字字符,则会被当做一个八进制数来解析。parseInt()函数还能指定第二个参数作为转换时使用的基数,例如:parseInt("0xAF",16)。为了避免错误的解析,建议无论什么情况下都明确指定基数。

  三、parFloat()函数也是从第一个字符开始解析每一个字符。而且也是一直解析到字符串的末尾,或者解析到遇见一个无效的浮点数字字符为止。也就是说,字符串的第一个小数点是有效的,第二个小数点就是无效的,因此它后面的字符串将被忽略。如“2.22.35”将会转化为2.22。parseFloat()只解析十进制值,十六进制格式的字符串始终会被转换成0。最后有一点需要注意:如果字符串包含的是一个可解析为整数(没有小数点,或者小数点后都是0)的数,parseFloat()都会返回整数,如:“1.00”将转化为1。

js中的数值转换的更多相关文章

  1. 【前端】深入浅出Javascript中的数值转换

    由于Javascript是一门弱类型的语言,在我们的代码中无时无刻不在发生着类型转换,所以了解Javascript中的类型转换对于了解我们认识Javascript的运行原理至关重要. 本文主要从数值转 ...

  2. js中的时间转换—毫秒转换成日期时间

    转自:http://www.javascript100.com/?p=181 前几天,在项目中遇到js时间增加问题,要将js毫秒时间转换成日期时间 var oldTime = (new Date(&q ...

  3. JS中应用正则表达式转换大小写

    JS中应用正则表达式转换大小写,代码很简单,看代码: 以下首字母大写,其它字母小写 <script type="text/javascript"> function r ...

  4. js中json的转换

    //aa='{"id":0,"appId":"app***********Id","appSecret":"a ...

  5. JS中bool值转换与比较

    前言 首先需要知道的是,js中有6个值为false,分别是: 0, '', null, undefined, NaN 和 false, 其他(包括{}, [], Infinity)为true. 可以使 ...

  6. js 中 字符串的转换

    JS 中将 number 转换为 string 我们比较熟悉,直接用toString() 的方法就可以了:那么将 string 转换成为 number 都有些什么方法呢?如下便简单的列举了一些,以便记 ...

  7. JavaScript中的数值转换

    在JavaScript中,有3个函数可以把非数值转换为数值 1.Number()函数 Number()可以用于任意数据类型. 转换规则如下. 如果是Boolean值,true和false将分别被转换为 ...

  8. js中把字符串转换成number格式方法

    方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有 ...

  9. JS中Unix时间戳转换日期格式

    <!doctype html> <html> <head> <title>Unix时间戳转换成日期格式</title> <script ...

随机推荐

  1. DOM获取元素的方法

    DOM:document object module 文档对象模型 DOM就是描述整个html页面中节点关系的图谱,如下图. 1,通过ID,获取页面中元素的方法:(上下文必须是document) do ...

  2. python 多个脚本

    1.增删改查haproxy.conf配置文件 1.查询输入:www.oldboy1.com 2.删除输入:{'backend': 'www.oldboy2.org','record':{'server ...

  3. python操作redis集群

    strictRedis对象方法用于连接redis 指定主机地址,port与服务器连接,默认db是0,redis默认数据库有16个,在配置文件中指定database 16 上代码 .对redis的单实例 ...

  4. Linux下实现ssh免密认证

    添加域名映射 配置ssh免密登陆 拷贝master服务器公钥至本机 验证master服务器ssh免密登录其余服务器 添加域名映射 打开hosts文件 Vim /etc/hosts 添加域名对象 配置s ...

  5. 第九节 java7JDK的常用封装类型

    一.Java Scanner类 /初始化一个 scanner 对象. Scanner scanner = new Scanner(System.in); //判断语法 boolean b = scan ...

  6. fastTime从后台传过来显示格式的处理

    1.可以在控制台用syso查看 QuestionFeedbackView qfv = on_LineManageService.getBringupHead(projectNo);//qfv是一个内含 ...

  7. eclipse工具类及插件(设置注释模板)

    (摘抄原地址)https://blog.csdn.net/xb12369/article/details/79850476(设置注释模板) 首先打开Eclipse配置选项:Window->Pre ...

  8. go web framework gin 路由表的设计

    在上一篇go web framework gin 启动流程分析这一篇文章中,我分析了go gin启动的过程,在这一篇文章中我将继续上面的分析,讨论gin 中路由表是如何设计的? 首先查看engine. ...

  9. traceroute命令初探

    一.学习目标 了解traceroute基本概念 了解traceroute工作原理及详细过程 熟悉traceroute常用命令 一些注意点 二.traceroute基本概念 traceroute (Wi ...

  10. python网页爬虫小项目开发

    这是我最近接的一个小项目,花了是整整四天多时间. 任务是将http://www.examcoo.com/index/detail/mid/7网站下所有的试卷里的试题全部提取出来,首先按照题型进行分类, ...