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. C#获取文件目录

    Form1.cs using System;using System.Collections.Generic;using System.ComponentModel;using System.Data ...

  2. VC++封装的时间类

    一.使用方法 首先要在工程中加入TimeNow.cpp和TimeNow.h文件 1.把.cpp与.h文件放在放在工程文件夹. 2.项目(progect)-->属性(properties)--&g ...

  3. 清楚理解const_cast类型转换

    1.任何使用原常量的地方, 已经直接编码到代码中去了.故后续转换类型并不能改变原定义 2.const_cast转换, 是使用了新指针或者引用,指向了原定义的内存,故而可以修改该内存. 使用也得用新指针 ...

  4. awrrpt.sqll生成awr报ORA-06502,ORA-06512

    客户环境SumOS操作系统,数据库版本11.2.0.3,rac两节点: 在节点2,执行awr报告,输出报错,有时候可以成功,有时候失败. 报错现象 SQL>@?/rdbms/admin/awrr ...

  5. 渲染标签 - v-html

    <!DOCTYPE html><html><head>    <meta charset="utf-8">    <title ...

  6. Linux上安装MangoDB

    版本 MongDB4.0.3 安装 tar -zxvf mongodb-linux-x86_64-rhel62-4.0.3.tgz默认的数据目录在/data/db,也可以指定目录启动命令./bin/m ...

  7. lucas 模板 洛古模板题

    #include<bits/stdc++.h> #define int long long using namespace std; ; int a[maxn]; int quick(in ...

  8. java实现表格tr拖动

    实现功能:js实现表格tr拖动,并保存因为拖动改变的等级. jsp代码 <div id="mainContainer"> <div class="con ...

  9. Ubuntu 14.10 下安装Ambari

    安装ambari有两种方式,一是自己下载源码编译,另外一个是使用公共仓库 1 使用Public Respositories Step1: Download the Ambari repository ...

  10. Win7系统安装Centos7.0双系统(一)

    项目环境测试,过去在虚拟机安装只要配置好镜像很快就可以轻松安装,但是在真实机中安装就有些略坑.网上有很多说法是把iso文件中安装引导拷出来,试了很久还是觉得U盘镜像直接安装更便捷.靠谱.因为CentO ...