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. 在数据库中sql查询很快,但在程序中查询较慢的解决方法

    在写java的时候,有一个方法查询速度比其他方法慢很多,但在数据库查询很快,原来是因为程序中使用参数化查询时参数类型错误的原因 select * from TransactionNo, fmis_Ac ...

  2. JAVA 根据设置的概率生成随机数

    import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; i ...

  3. Win强制删除文件windows批处理强行删除文件

    一般情况下选中文件或文件夹可以直接删除文件,但是有些情况下例如:文件非常规命名.找不到文件位置等就无法直接删除. 针对这种情况可以用 bat批处理文件 删除,一下就是该方法的步骤 新建一个文件:*** ...

  4. AWK入门

    AWK类型    AWK:源于AT&T实验室的AWK    NAWK:AWK的升级版    GAWK:GNU AWK,兼容AWK和NAWK    程序结构    BEGIN语句块,可选     ...

  5. 扯淡设计模式2:java,模板模式,

    模板模式: package com.dayuanit.service; public abstract class UserService { public void login(String use ...

  6. linux之目录知识

    /var 目录下的路径知识: /var/log    记录系统及软件运行信息文件所在目录 /var/log/messages 系统级别日志文件 /var/log/secure 用户登录信息日志文件 / ...

  7. springboot区分开发、测试、生产多环境的应用配置(二)

    转:https://www.jb51.net/article/139119.htm springboot区分开发.测试.生产多环境的应用配置(二) 这篇文章主要给大家介绍了关于maven profil ...

  8. latex之行内公式与行间公式

    1.行内公式 我是对行内公式的测试$f(x)=1+x+x^2$ 2.行间公式 单行不编号 \begin{equation} \int_0^1(1+x)dx \end{equation} 结果为: 单行 ...

  9. Redis占硬盘空间

    转载自:http://blog.csdn.net/qq285744011/article/details/51002409 [问题的原因] Windows版Redis启动后,会在C盘自动创建一个很大的 ...

  10. [ Codeforces Round #549 (Div. 2)][D. The Beatles][exgcd]

    https://codeforces.com/contest/1143/problem/D D. The Beatles time limit per test 1 second memory lim ...