数字转字符串
1.隐式转换:要把数字转换为字符串,只要给它添加一个空的字符串即可
var nOne = 123 + "";
alert(typeof nOne);(用alert检测数据类型)
2.显式转换:string()函数和toString()方法
var string_value = number.toString();
var nValue = 12;
var sValue = nValue.toString();
alert(typeof sValue);
var string_value = string(number)
var nValue = 12;
var sValue = String(nValue);
alert(typeof sValue);
3.Number 类的三个数字到字符串方法
var n = 123456.789;
var s = n.toFixed(0); // "123457"
alert(s);
var s = n.toFixed(2); // "123456.79"
alert(s);
var s = n.toExponential(1); // "1.2e+5"
alert(s);
var s = n.toExponential(3); // "1.235e+5"
alert(s);
var s = n.toPrecision(4); // "1.235e+5"
alert(s);
var s = n.toPrecision(7); // "123456.8"
alert(s);
字符串转数字
1.隐式转换:当字符串用于数字环境中也能自动转换为数字
var product = "21"*"2";//product is the number 42
利用这一有点,我们只要把一个字符串减去0就可以将其转换为一个数字
`var number = string_value - 0;`
(但是注意,给一个字符串增加一个0会导致字符串连接,而不是类型转换。)
将一个字符串转换为数字的一种缺少技巧性但是更清楚明白的方法就是:把Number()构造函数作为一个函数来调用:
var number = Number(string_value)
这种把字符串转换为数字的方法的麻烦之处在于它国语严格,它只对以10为基数的数字有效,并且尽管它允许开头的和结尾的空白,但是,在紧随数字的字符串中,它不允许出现任何非空字符。
要允许更多灵活的转化,可以使用parseInt()和parseFloat()。这些函数可以从字符串开始处转换和返回任何的数字,忽略或舍去非数字部分。parseInt()只截取整数,而parseFloat()截取整数和浮点数。如果一个字符串以“0x”或“0X”开头,parseInt()将其解释成为一个十六进制的数字。如:
parseInt("3 blind mice"); //returns 3
parseFloat("3.14 meters"); //returns 3.14
parseInt("12.34"); //returns 12
parseInt("0xff"); //returns 255
parseInt()甚至可以接受另一个参数来制定要解析的数字的基数。合法的值在2到36之间,如;
parseInt("11",2) //returns 3(1*2+1)
parseInt("ff",16) //returns 255(15*16+15)
parseInt("zz",32) //returns 1295(32*36+35)
parseInt("077",8) //returns 63(7*8 +7)
parseInt("077",10) //returns 77(7*10+7)
如果parseInt()和parseFloat()不能够把制定的字符串转为数字,他们就会返回Nan
parseInt("eleven") //returns Nan
parseFloat("$72.47") //returns Nan