JavaScript中Number类型,Number,parseInt转换函数特殊情况总结

原创 2016年07月01日 10:21:10

 JavaScript中有5中基本数据类型:Undefined、Null 、Boolean 、 Number  和String。还有一种复杂的数据类型----Object。

ECMA定义了不同的数值字面量格式,比如整数和浮点数。整数字面量格式有十进制,八进制和十六进制。浮点数值是该数值中必须包含一个小数点,并且小数点后面至少包含一位数字。 对于浮点数有一点需要注意, 由于浮点数值的精度问题,不能通过 “=”判断两个浮点数是否相等,这是因为浮点计算会产生误差问题。所以永远不要去测试某个特定的浮点数值。

    1 虽然JavaScript中数值没有像  c中int  double float类型,但是其能表示的数值范围也是有限的,大多数浏览器中,最小值为5e-324,最大值为1.7976931348623157e+308 ,最大最小值保存在 Number.MIN_VALUE 和Number.MAX_VALUE 中。超出表示范围会返回-Infinity 和 Infinity 。一个数字是不是无穷大可以用 isFinite()判断 。

  2  还有一个特殊的数值,NaN(not a number) ,当0为分母或者 用number函数转换字符串时会返回NaN ,任何涉及NaN 的操作都会返回NaN ,这在多不计算中会导致问题,因此判断一个数字是不是NaN 十分重要,但是NaN 与任何值都不相同,换句话说 

alert (NaN == NaN ) 会得到false 。因为不能使用  a == NaN  来判断数字a是不是NaN ,因此ECMAScript提供了isNaN ()函数判断一个数字是不是NaN 。这个判断在需要用number将字符串转为数字的时候尤其重要,比如判断一个字符串是否符合ip地址标准,具

参考这里  。导致NaN出现的一大类原因是Number类的转换函数。

     3  转换函数,有三个函数可以把非数值转换为数值,Number() ,parseInt() ,parseFloat() ,Number()函数可以用于任何数据类型,

parseInt() ,parseFloat()则专门用于把字符串转换为数值。三个函数对于同样的输入输出是不一样的。

Number()

²  对于Boolean值,转为1或0;

²  对于数字值,简单的传入传出;

²  如果是null值,返回 0;

²  如果是undefined ,返回 NaN;

²  对于字符串:

²  如果字符串中只包含数字(包括正负号),八进制十六进制都则将其转换为十进制,但是会忽略前导0比如 “012”-> 12. 会忽略前导空格但不会忽略中间空格,“ 12”-> 12. “1 23”-> NaN.

²  如果字符串为空,返回 0;

²  字符串含有字符则返回NaN。

parseInt() 函数和parseFloat()专门用于转换字符串,因此在处理字符串的时候更常用这两个函数。他们针对字符串的准换更合理一些。

 parseInt()准换规则:

²  忽略空格,找到第一个非空字符如果第一个非空字符不是数字字符或者负号,则返回NaN。

²  对于空字符串,会返回NaN

²  第一个字符为数字字符中间含有其他负号,则只返回前面正常的数字。比如:“123abc234”—> 123

使用parseInt时还可以指定转换基数,比如:parseInt(“10”,16) —> 16.

parseFloat和parseInt处理规则类似。

基于 parseInt() 函数和parseFloat() 转换字符串的时候会对处理一下,如果我们只是想拿来计算这种处理很好,但是如果我们想转为数字之后进行判断原来字符串中是否含有

空格,前导0等 则由于准换规则无法判断,比如对于输入ip地址字符串的判断,此时我们可以用

    "  v ==  parseInt(v) .toString()  "  判断是否含有前导 0 或者空格 。

 

   

   

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Cinderella_hou/article/details/51799153

javascript:parseInt()、Number()和+对比

看书时看到Number()和+转换数字速度要比parseInt()快的多,所以闲来无事我就试了试。...
  • k_shl_2011
  • k_shl_2011
  • 2016-04-12 15:52:24
  • 2192

JavaScript中的parseInt和Number函数

函数作用: parseInt将字符串(String)类型转为整数类型。 Number() 函数把对象(Object)的值转换为数字。 语法不同: parseInt(string, [radix])...
  • u010066934
  • u010066934
  • 2015-08-01 20:17:56
  • 2423

JavaScript数值转换函数(Number(),parseInt(),parseFloat(),Math)总结

在前端开发的过程中,需要用到很多关于数值转换的函数,来将得到的字符串或者数值进行处理。如将一个浮点数转换为整数;将一个整数转换为浮点数;将一段字符串转换为数值;将一个浮点数转换为小于它的最小整数或者保...
  • y2010081134
  • y2010081134
  • 2015-07-13 22:24:17
  • 221

Number()和parseInt()的区别

Number()和parseInt()一样,都可以用来进行数字的转换 区别在于,当转换的内容包含非数字的时候,Number() 会返回NaN(Not a Number) parseInt() ...
  • win_best
  • win_best
  • 2017-08-27 10:33:20
  • 271

详解JS中Number()、parseInt()和parseFloat()的区别

详解JS中Number()、parseInt()和parseFloat()的区别
  • m0_38099607
  • m0_38099607
  • 2017-05-23 12:48:22
  • 1461

JAVASCRIPT:NUMBER类型

JAVASCRIPT:NUMBER类型 本文适合初学js,对js有一些了解,希望可以进一步了解js的人群。 Js中的原始类型有三种:数字(number),字符串(string),布尔值(Boole...
  • javawebty
  • javawebty
  • 2016-07-25 23:13:12
  • 748

es6学习之Number类型

一.es5的Number类型 1.Number 对象属性 constructor 返回对创建此对象的 Number 函数的引用。 MAX_VALUE 可表示的最大的数。 MIN_VAL...
  • guxiansheng1991
  • guxiansheng1991
  • 2018-02-28 17:18:37
  • 44

JS学习笔记1——不要使用JavaScript内置的parseInt()和Number()函数,利用map和reduce操作实现一个string2int()函数

map/reduce练习题:不要使用JavaScript内置的parseInt()和Number()函数,利用map和reduce操作实现一个string2int()函数。 分析:把一个字符串"13...
  • tongyanping1015
  • tongyanping1015
  • 2017-01-24 12:57:49
  • 2856

javaScript中的将其他数据类型转换为Number类型

1:Number():强制转化,如果转换的是字符串,字符串内必须都是有效的数字字符才可以转换,如过有一个不是有效数字,则无法转换,会返回NaN。 var cur="1adc"; var ...
  • paomo0zhixa
  • paomo0zhixa
  • 2015-10-14 14:52:29
  • 1694

JavaScript Number 对象长度

所有 JavaScript 数字均为 64 位 JavaScript 不是类型语言。与许多其他编程语言不同,JavaScript 不定义不同类型的数字,比如整数、短、长、浮点等等。 JavaScr...
  • x356982611
  • x356982611
  • 2016-12-25 16:40:26
  • 1047
收藏助手
不良信息举报
您举报文章:JavaScript中Number类型,Number,parseInt转换函数特殊情况总结
举报原因:
原因补充:

(最多只允许输入30个字)