js数据类型间的互相转换

413 阅读3分钟

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,例:

Object:如果是对象,则调用对象的 valueOf() 方法,然后依照前面的规则转换返回的值。如果转换 的结果是 NaN ,则调用对象的 toString() 方法,然后再次依照前面的规则转换返回的字符 串值。不过一般都是转换为NaN,如果想要转换为所需要的数字,可以修改valueOf()和toString()方法

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高级程序设计(第三版)

6.未完待续……