码迷,mamicode.com
首页 > 其他好文 > 详细

Number类型

时间:2015-02-11 16:11:54      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

数值转换

如果是Boolean值,true和false 分别转成1,0。

如果是数字值,返回相应数值。

如果是null,返回0。

如果是undefined,返回NaN。

如果是字符串:

1. 如果只有数字,则将其转换为十进制数值,比如:"123" -> 123    "011"-> 11

2. 如果字符串包含有效浮点格式,如果"1.1" 则将其转换为对应的浮点数(同样忽略前导0)

3. 如果字符串包含有效的十六进制格式,如"0xf" 则会将其转换成相同大小的10进制整数。

4. 如果字符串为空,则将其转换为0.

5. 如果字符串中包含除上述格式外的字符,则将其转换为NaN。

如果是对象,则调用对象的valueOf() 方法,然后依照前面的规则转换返回值,如果转换的结果是NaN,则调用对象的toString() 方法,然后再依次按照前面的规则转换返回的字符串值。

var num1 = Number("hello"); //NAN
var num2 = Number(""); //0
var num3 = Number("0001"); // 11
var num4 = Number(true); // 1

parseInt()函数

当使用parseInt转换时,他会忽略字符串前面的空格,直到找到第一个非空格字符,如果第一个字符不是数字字符或者负号,parseInt() 就会返回NaN; 

比如:

var num1 = Number("") //0
var num2 = parseInt("") //Nan

当解析到第一个有效数值字符后会继续向后解析,直到遇到不是数字字符:

var num1 = parseInt("12dd"); // 12

如果遇到小数点也会停止

var num1 = parseInt("11.2"); // 11

parseInt(str,radix) 第二参数指定转换格式,二进制,八进制,十进制,十六进制等。

var num1 = parseInt("0xA"); // 10 遇到0x自动识别为十六进制
var num2 = parseInt("34.2"); // 34  默认十进制
var num3 = parseInt(070); //56 八进制
var num4 = parseInt("70"); // 70

注意070 转换时,因为有前导0 则会默认作为八进制进行转换,所以需要第二个参数指定格式。

如果是:

var num1 = parseInt("070"); // 70

则会作为十进制转换为70 ,但是在低级别IE下会按照八进制转换,所以注意使用parseInt() 转换是最好指定转换的格式。

var num1 = parseInt("0xAF") // 175
var num2 = parseInt("AF",16) // 175
var num3 = parseInt("AF"); // NaN

  

Number类型

标签:

原文地址:http://www.cnblogs.com/lcw5945/p/4286115.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!