js中的数值转换
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中的数值转换的更多相关文章
- 【前端】深入浅出Javascript中的数值转换
由于Javascript是一门弱类型的语言,在我们的代码中无时无刻不在发生着类型转换,所以了解Javascript中的类型转换对于了解我们认识Javascript的运行原理至关重要. 本文主要从数值转 ...
- js中的时间转换—毫秒转换成日期时间
转自:http://www.javascript100.com/?p=181 前几天,在项目中遇到js时间增加问题,要将js毫秒时间转换成日期时间 var oldTime = (new Date(&q ...
- JS中应用正则表达式转换大小写
JS中应用正则表达式转换大小写,代码很简单,看代码: 以下首字母大写,其它字母小写 <script type="text/javascript"> function r ...
- js中json的转换
//aa='{"id":0,"appId":"app***********Id","appSecret":"a ...
- JS中bool值转换与比较
前言 首先需要知道的是,js中有6个值为false,分别是: 0, '', null, undefined, NaN 和 false, 其他(包括{}, [], Infinity)为true. 可以使 ...
- js 中 字符串的转换
JS 中将 number 转换为 string 我们比较熟悉,直接用toString() 的方法就可以了:那么将 string 转换成为 number 都有些什么方法呢?如下便简单的列举了一些,以便记 ...
- JavaScript中的数值转换
在JavaScript中,有3个函数可以把非数值转换为数值 1.Number()函数 Number()可以用于任意数据类型. 转换规则如下. 如果是Boolean值,true和false将分别被转换为 ...
- js中把字符串转换成number格式方法
方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有 ...
- JS中Unix时间戳转换日期格式
<!doctype html> <html> <head> <title>Unix时间戳转换成日期格式</title> <script ...
随机推荐
- linux 中mv命令
mv 命令是一个与cp类似的命令,但是它并非创建文件或目录的复制品/副本.不管你在使用什么版本的Linux系统,mv 都默认安装在你的Linux系统上了.来看一下 mv 命令在日常操作中的一些例子. ...
- <airsim文档学习> Street View Image, Pose, and 3D Cities Dataset
原文地址: https://github.com/amir32002/3D_Street_View 说明:个人学习笔记,翻译整理自github/airsim. 简介 该存储库共享包含6DOF相机姿态 ...
- .net core 使用log4net日志组件
一个web站点必须要记录日志,否则哪里出错了,完全是黑娃找黑妹,两眼一抹黑. 最常用的就是log4net日志组件.我们可以通过扩展加入日志组件. 第一步:在项目中NuGet log4net包,即 In ...
- 北大poj- 1006
生理周期 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 133189 Accepted: 42577 Descripti ...
- Delphi 10.3.1 Secure File Sharing解决应用间文件共享
Delphi 10.3.1 为Android项目提供了Secure File Sharing选择项,默认是False.这一项是设置什么呢? 原来,Android 7及以后的版本,为了加强OS的安全性, ...
- JS查看IOS手机的版本号
微信弹portal连接wifi的开发过程中,遇到了有些版本的ios系统在弹portal的浏览器(以下称小浏览器)中无法进行alert(),weixin://等等操作,只能使用window.locati ...
- 关于$\mathcal{D}(0,1)$上的一个有趣结论
[转载请注明出处]http://www.cnblogs.com/mashiqi 2017/02/20 在$\mathcal{D}(0,1)$上取定$\varphi_0 \in \mathcal{D}( ...
- Linux下,用命令进行 日志分割、日志合并
指定文件大小分割: split -b 10m catalina.out imsoft 以每个文本文件10M方式分割日志 文件合并: cat small_file* > large_file
- 词频统计V2.5
一.前言 作业具体要求见[https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/922].一开始用JAVA写了个词频统计,然而没想出输入格式 ...
- PTA寒假二
7-1 币值转换 (20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简 ...