1.其他数据类型转换为number
有 3 个函数可以把非数值转换为数值:Number() 、 parseInt() 和 parseFloat() 。第一个函数, 即转型函数 Number() 可以用于任何数据类型,而另两个函数则专门用于把字符串转换成数值。日常使用中,parseInt)()比较的常用,
而在 ECMAScript 5 JavaScript 引擎中, parseInt() 已经不具有解析八进制值的能力,因此前导的零会 被认为无效,从而将这个值当成 "70" ,结果就得到十进制的 70。在 ECMAScript 5 中,即使是在非严格 模式下也会如此。
为了消除在使用 parseInt() 函数时可能导致的上述困惑,可以为这个函数提供第二个参数:转换 时使用的基数(即多少进制)。如果知道要解析的值是十六进制格式的字符串,那么指定基数 16 作为第 二个参数,可以保证得到正确的结果
parseInt()与parseFloat()的区别:
1.parseInt()会忽略非数字字符,parseFloat()除对第一个小数点有效, 也会忽略非数字字符
2.它们都会忽略前导0;
3.parseInt()不解析8进制,parseFloat()只解析10进制
Boolean:true和false 分别转换为1和0;
number:简单的传入和返回
null:0
undefined:NaN
string:1.若单纯为数字,转换为10进制数字(忽略前导0);例:"123"转为123,"011"转为11
2.如果为有效浮点数,则转换为对应的浮点数值,例:"1.5"转换为1.5
3.如果为有效16进制格式,转换为同等的10进制数,例:'0xf'转化为15
4.如果为空字符串,转换为0,例:''转为0, 5.如果是除上述之外的字符,转换为NaN,例:
2.其他数据类型转换为字符串
要把一个值转换为一个字符串可以使用toString() 方法
number:例:1转换为'1',
Boolean:例:true转换为'true',false转换为'false'
null:报错,没有此方法
undefined:报错,没有此方法
string:返回一个字符串副本
Object:返回 "[object Object]"
3.其他数据类型转换为布尔值
数据类型 | 转换为true值 | 转换为false值 |
---|---|---|
Boolean | true | false |
String | 任何非空字符串 | ""空字符串 |
Number | 任何非零数值(包括无穷大) | 0和NaN |
Object | 任何对象 | |
Undefined | 不适用 | undfined |
null | 不适用 | null |
6个falsey:false,""空字符串,null,undefined, 0和NaN
4.由于Undefined和Null,Object的特殊性,所以转换类型没有意义,没有转换方法。
5.参考资料
javascript高级程序设计(第三版)