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. vue-新建项目-构建-打包-环境切换

    一.新建项目 二.运行 npm install npm run start 三.多环境切换 踩坑后总结的方法.. 首先看到package.json 前面的参数都是命令.比如“start”的意思就是np ...

  2. MCNN多层神经网络论文笔记

    论文原文 https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Zhang_Single-Image_Crowd_Coun ...

  3. jquery常用实例

    $("#returnTop").click(function () { var speed=200;//滑动的速度 $('body,html').animate({ scrollT ...

  4. Java容器解析系列(5) AbstractSequentialList LinkedList 详解

    AbstractSequentialList为顺序访问的list提供了一个骨架实现,使实现顺序访问的list变得简单; 我们来看源码: /** AbstractSequentialList 继承自 A ...

  5. case语法

    一.文件系统访问列表 FACL :Filesystem Access Control List    文件系统访问列表 利用文件扩展保存额外的访问控制权限. setfacl: -m:设定访问控制权限  ...

  6. js实现table表格相同内容按需合并

    uniteTdCells(tableId) { var table = document.getElementById(tableId); for (let i = 0; i < table.r ...

  7. 神州数码多区域OSPF配置

    实验要求:掌握多区域OSPF配置 拓扑如下 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface s0/1 进入端口 ip address ...

  8. Java六大必须理解的问题

    Java六大必须理解的问题 对于这个系列里的问题,每个学Java的人都应该搞懂.当然,如果只是学Java玩玩就无所谓了.如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列.内容 ...

  9. iOS 添加第三方字体

    有时候根据UI的设计,我们需要添加第三方字体到工程中,实现特殊的效果. 一,把第三方字体包导入工程 二,在info.plist文件中添加Fonts provided by application 类型 ...

  10. 20155208徐子涵 Exp5 MSF基础应用

    20155208徐子涵 Exp5 MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode. Exploit:Exploit 的英文意思就是利用,它在黑客眼里就是 ...