将其他数据类型的转换为字符串类型
方法一:
调用被转换类型的toString()方法
<script>var a=123;a=a.toString();console.log(typeof a);console.log(a);</script>
大家注意,a.toString()不会影响到原变量,不过该方法是有返回结果的,所以要用变量去接收。
另外需要注意:这个方法,不能转换基本数据类型中的null和undefined,会报错的!因为他们都没有toString()方法。
那怎么解决这个问题呢?看第二个方法。
方法二:
调用String()函数,将转换的数据当作参数传给函数。
<script>var a=123;a=String(a);console.log(typeof a);console.log(a);</script>
使用函数的方法时,字符串类型、数值类型、布尔类型他们其实也是调用的tostring()方法;而null和undefined都是用函数进行的强制转换,所以不会报错。
将其他类型转换为数值类型
方法一:
需注意,转换为数值类型没有toNumber()方法;只有Number()函数的方式。
<script>var a='123';a=Number(a);console.log(typeof a);console.log(a);</script>
还有几点也很重要:
1、如果字符串中含有非数字,则转换为NAN;
2、如果字符串说空字符串和多个空格组成的字符串,则转换为0;
3、true转换为1,false转换为0;
4、Null转换为0;
5、undefined转换为NAN。
方法二:
parseInt()和parseFloat()函数
<script>var a='123px';a=parseInt(a);console.log(typeof a);console.log(a);</script>
这个函数有个好处,它可以返回整数,而不是像Number()函数一样,遇到非数字返回NAN;
如果px后有其他数字,后面的数字也不会去处理。
如果对非String使用parseInt()和parseFloat(),它会将其先转换为String,再转换。
可以在parseInt()中传递第二个参数,来指定数字的进制。