1.字符串转换成数字
a).自动转换
var product = "21" * "2";//42
利用这一优点只要把一个字符串减去0就可以将其转换为一个数字。
var number = string_value - 0;
但是,给一个字符串增加一个0会导致字符串连接,而不是类型转换。
b).Number() 函数
语法:Number(object)
返回值:
如果参数是 Date 对象,Number() 返回从 1970 年 1 月 1 日至今的毫秒数。
如果对象的值无法转换为数字,那么 Number() 函数返回 NaN。
var test1= new Boolean(true);
var test2= new Boolean(false);
var test3= new Date();
var test4= new String("999");
var test5= new String("999 888");
document.write(Number(test1)+ "<br />");
document.write(Number(test2)+ "<br />");
document.write(Number(test3)+ "<br />");
document.write(Number(test4)+ "<br />");
document.write(Number(test5)+ "<br />");
输出:
1
0
1256657776588
999
NaN
c).parseInt() 函数
可解析一个字符串,并返回一个整数。
语法:parseInt(string, radix) radix不是必选项,表示要解析的数字的基数。该值介于 2 ~ 36 之间。
若该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。
parseInt("3 blind mice"); //3
parseFloat("3.14 blind mice"); //3.14
parseInt("12.34");//12
parseInt("0xFF");//255
parseInt("10"); //返回 10
parseInt("19",10); //返回 19 (10+9)
parseInt("11",2); //返回 3 (10+9)
parseInt("17",8); //返回 15 (8+7)
parseInt("1f",16); //返回 31 (16+15)
parseInt("010"); //未定:返回 10 或 8
parseInt("elevent11");//NaN
parseInt("11elevent");//11
d).parseFloat() 函数
可解析一个字符串,并返回一个浮点数。
语法:parseFloat(string) 只有字符串中的第一个数字会被返回。开头和结尾的空格是允许的。
如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN。
如果只想解析数字的整数部分,请使用 parseInt() 方法。
parseFloat("He was 40.2");//NaN
parseFloat(" 40.2 He was ");//40.2
parseFloat("34 45 66");//34
parseFloat("10.00");//10
2.数字转换为字符串
a).结尾添加一个空字符串
var n = 100;
var n_as_string = n + "";
b).String()函数
var test1= new Boolean(1);
var test2= new Boolean(0);
var test3= new Boolean(true);
var test4= new Boolean(false);
var test5= new Date();
var test6= new String("999 888");
var test7=12345;
document.write(String(test1)+ "<br />");
document.write(String(test2)+ "<br />");
document.write(String(test3)+ "<br />");
document.write(String(test4)+ "<br />");
document.write(String(test5)+ "<br />");
document.write(String(test6)+ "<br />");
document.write(String(test7)+ "<br />");
输出:
true
false
true
false
Wed Oct 28 00:17:40 UTC+0800 2009
999 888
12345
c).toString()
可把一个 Number 对象转换为一个字符串,并返回结果。
语法:
NumberObject.toString(radix) radix,可选。规定表示数字的基数,使 2 ~ 36 之间的整数。
若省略该参数,则使用基数 10。但是要注意,如果该参数是 10 以外的其他值,
则 ECMAScript 标准允许实现返回任意值。
var n = 17;
binary_string = n.toString(2);//"10001"
octal_string = "0" + n.toString(8);//"021"
hex_string = "0x" + n.toString(16);//"0x11"
d).toFixed()
可把 Number 四舍五入为指定小数位数的数字。
语法:
NumberObject.toFixed(num) num,必需。规定小数的位数,是 0 ~ 20 之间的值,
包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。
var n = 1234.789;
n.toFixed(0);//"1234"
n.toFixed(2);//"1234.79"
e).toExponential()
可把对象的值转换成指数计数法。
语法同上
var n = 123456.789;
n.toExponential(1);//"1.2e+5"
n.toExponential(3);//"1.235e+5"
f).toPrecision()
使用指定有意义的位数来显示一个数字,如果有意义的位数还不够显示数字的整个整数部分,它就使用指数表示法。
可在对象的值超出指定位数时将其转换为指数计数法。
var n = 123456.789;
n.toPrecision(4);//"1.235e+5"
n.toPrecision(7);//"123456.8"