有三个函数可以将非numbers值转成numbers类型:Number() , paresInt(),parseFloat()。
第一个函数Number()可以用在任何的数据类型转换,另外两个只能用在string转numbers类型。
Number()函数:
boolean值转化是,true和false分别转成1,0
numbers类型直接返回
null类型将返回0
undefined类型将返回NaN.
String 类型转换:
1,如果string只包含数字,它会直接转化成相对应的数字,如:“1”返回1,“123”返回123,“012”返回12,第一个0将被省略
2,如果string中包含有合法的浮点格式,如“1.1”,直接转化为浮点数,1.1
3,如果string包含有16进制格式,如0xf,它将转换成该数所对应的整数
4,如果string为空,则返回0
5,否则,如果string包含其他格式的字符,返回NaN,如Number("abc");
parseInt()函数:
将字符串转成integer类型。
1,如果string为空,则返回NaN,这个区别于Number()返回的0
2,转化例子:
parseInt("123akfejg");返回123
parseInt(""); 返回NaN
parseInt("0xA");返回 10 16进制
parseInt("22.3");返回22
parseInt("79");返回79
parseInt("0xf");返回15
parseInt("070");返回56 它是八进制啊,这个在ECMAScript 3中返回的结果,但是在ECMAScript 5中parseInt()函数不处理8进制转化,则第一个是0看出不合法,则该字符串当作0,返回结果将是0.
parseInt()还有一种用法,指定该数是几进制,如:parseInt("0xAF",16); 返回175,可以省略0x.
parseFloat()函数转换跟parseInt()函数转化类型,如:
parseFloat("123af"); 返回123
parseFloat("0xA");返回0,由于该函数没有指定8进制,16进制说法。
parseFloat("22.33.22")返回22.33
parseFloat("0908.5");返回908.5
parseFloat("3.123e7");返回31230000