javascript的转换
javascript的转换有两种形式,分别是阴式转换和强制转换.
一、阴式转换:
阴式转换是系统自动进行的转换,隐式转换无处不在.为程序员提供了很大的方便,但有时也会因为隐式转换产生
bug.
在算术计算中,一切类型都转换成Number类型,再计算.
但是在加法计算中,如果有一方是字符串,则另一方也转化成字符串,变成了字符串之间的拼接,并不是真正的加法
计算。如:“2”+2,则等于“22”,与数学计算中的4并不相同.
"2"+true="2true"; 2+true=3;//前者2没有转换,而是true转换成字符串.后者true转换成1.
二、强制转换:
强制转换是程序员通过调用函数进行的转换.
1、任何类型转换成字符串String,有两种方式:
1)、var str=x.toString();//一切对象都有此方法.
2)、var str=String(x);//同时也是阴式转换的原型.
2、任何类型转换成Number类型:
var n=Number(x);//同时也是阴式转换的原型.
注意:x是Boolean值是,true转换成1,false则转换成0;空字符串则转换成0;x是字符串时,如果都是数字,则转换
成数字,否则转换成NaN;null转换成0;undefined转换成NaN;
特殊情况:字符串转换成Number类型有三种方式,最后一种是上面的函数.
1)、var n=pasrseInt(str);
从字符串的开始位置逐个读取,直到第一个不是数字的字符时,停止读取,开始读取时,自动忽略空格.
2)、var n=parseFloat(str);
与上一种方式几乎相同,不过都取时,可以读取第一个小数点.
3、任意类型转换成Boolean类型:
var bool=Boolean(x);//同时也是阴式转换的原型.
注:只有""、0、NaN、null、undefined这5个值转换成Boolean值是false,其余均是true.